<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Esteban S. Abait</title>
    <description>The latest articles on Forem by Esteban S. Abait (@eabait).</description>
    <link>https://forem.com/eabait</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F367241%2F6166e7b2-5b75-4c72-9bb8-d1d53d268d56.jpeg</url>
      <title>Forem: Esteban S. Abait</title>
      <link>https://forem.com/eabait</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/eabait"/>
    <language>en</language>
    <item>
      <title>The Four Modalities for Coding with Agents</title>
      <dc:creator>Esteban S. Abait</dc:creator>
      <pubDate>Wed, 28 Jan 2026 13:21:51 +0000</pubDate>
      <link>https://forem.com/eabait/the-four-modalities-for-coding-with-agents-4cdf</link>
      <guid>https://forem.com/eabait/the-four-modalities-for-coding-with-agents-4cdf</guid>
      <description>&lt;p&gt;It is 2026, and many software engineers around the world are realizing that coding agents are capable of generating high-quality outputs. Yet adopting these tools involves trade-offs. Teams vary in how much effort they invest up front in specifying design/requirements versus afterwards in reviewing and testing the AI’s output.&lt;/p&gt;

&lt;p&gt;Developing functional software with agents involves a three-stage process:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Upfront specification&lt;/strong&gt;. Developers initiate the task by defining the task’s goal, outlining a plan, and furnishing essential context. This might include providing agents with specific rules (e.g., via &lt;a href="http://AGENT.MD" rel="noopener noreferrer"&gt;&lt;code&gt;AGENT.MD&lt;/code&gt;&lt;/a&gt;, &lt;a href="https://docs.cline.bot/prompting/cline-memory-bank" rel="noopener noreferrer"&gt;memory banks&lt;/a&gt;, and other markdown files that can fit the agent’s context) and detailed instructions, which the agents will use as the foundation for implementation.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Code generation&lt;/strong&gt;. Agents utilize the provided context, rules, knowledge-banks, and plan to automatically generate the necessary code that fulfills the ultimate objective set by the developer.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Output revision&lt;/strong&gt;. In the final stage, the developer is responsible for reviewing the generated code, testing the software to ensure it runs correctly, and verifying that it functions as intended.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We can classify four distinct “modalities” of using coding agents, based on whether Upfront Specification Effort is low or high, and whether Output Revision Effort is low or high.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Output Revision Effort&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Upfront Specification Effort&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Vibe coding&lt;/strong&gt;. Loosely specified input prompt. The output is only functionally validated.&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Guided Prototyping&lt;/strong&gt;. Loosely specified input prompt. The output is functionally validated and also its implementation details.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Autopilot Coding&lt;/strong&gt;. Uses coding agents to produce product increments with a high level of trust in the Agent outputs. The input is well specified in terms of functionality and technical design, but the output is loosely reviewed as it is considered of good quality.&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Agentic Engineering&lt;/strong&gt;. Using Agents to generate code following a software engineering process. Each line or the majority of lines of generated code is reviewed. There is a testing strategy in place that ensures software fulfills its intended use.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Below, I describe each modality, its pros and cons, and recommendations for when to use it.&lt;/p&gt;

&lt;h1&gt;
  
  
  Vibe Coding
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://x.com/karpathy/status/1886192184808149383?s=20" rel="noopener noreferrer"&gt;&lt;em&gt;Vibe coding&lt;/em&gt; (term introduced by Andrej Karpathy)&lt;/a&gt; refers to using an AI coding assistant with minimal upfront specification and minimal code review. You “follow your vibes” by providing a loosely specified natural-language prompt for the feature or program you want, letting the AI generate the code, and then running it to see if it works. Crucially, you do &lt;strong&gt;not&lt;/strong&gt; meticulously review the code; you validate it only by testing its functionality (does the app run and do what you asked?). &lt;/p&gt;

&lt;p&gt;In Karpathy’s words, vibe coding means &lt;em&gt;“fully give in to the vibes, embrace exponentials, and forget that the code even exists”&lt;/em&gt;. &lt;/p&gt;

&lt;p&gt;The human acts more as a product manager or tester, focusing on describing goals and trying the software, rather than reading or structuring the code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pros
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Enables non-programmers to create software&lt;/strong&gt;. Even people with little coding experience can produce working applications by describing what they want in plain English. For example, an accountant or designer could use tools like Replit’s Ghostwriter or Cursor’s natural-language interface to build simple apps, whereas before they might be limited to Excel macros. In short, vibe coding democratizes software creation by making “the hottest new programming language English”.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Encourages rapid experimentation&lt;/strong&gt;. Because you’re not spending time on detailed specs or boilerplate coding, you can quickly try out new feature ideas or product prototypes. Product managers and UX designers can spin up proofs-of-concept with AI to demonstrate an idea in code rather than writing a PRD or drawing a Figma mockup (see &lt;a href="https://x.com/ryolu_/status/2011808864153280563?s=20" rel="noopener noreferrer"&gt;here&lt;/a&gt;). This fast, “just try it” approach aligns with the idea of &lt;a href="https://itrevolution.com/articles/vibe-coding-the-revolutionary-approach-transforming-software-development/#:~:text=with%20unfamiliar%20libraries%2C%20and%20writing,allowed%20for%20only%20one%20attempt" rel="noopener noreferrer"&gt;optionality&lt;/a&gt;, which involves exploring multiple solutions in parallel since the cost to attempt each is low.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lowest upfront cost and development time.&lt;/strong&gt; For a hobby project, hackathon, or pre-seed startup, vibe coding can deliver a minimal viable product extremely quickly and cheaply. Entire weekend projects or MVPs can be built in days or hours rather than weeks. This acceleration has already been observed in practice (e.g., Y Combinator’s CEO noted that in their Winter 2025 batch, 25% of startups had &lt;strong&gt;95% of code generated by AI&lt;/strong&gt;, heralding that &lt;a href="https://x.com/garrytan/status/1897303270311489931" rel="noopener noreferrer"&gt;“the age of vibe coding is here”&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Cons
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No control over code quality or architecture&lt;/strong&gt;. Since you rely on the AI’s outputs without deep inspection, the codebase can be inconsistent or poorly structured, accumulating significant technical debt. One developer’s 27-day AI-coding experiment found that as the project grew, similar functions ended up implemented differently across the codebase, and components lacked awareness of each other. This kind of hidden complexity becomes costly later.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Higher risk of bugs and security issues&lt;/strong&gt;. Lack of code review means vulnerabilities can slip through. There have been incidents of AI-generated code doing dangerous things unexpectedly. For example, an &lt;a href="https://x.com/jasonlk/status/1946066422477529487?s=20" rel="noopener noreferrer"&gt;AI coding assistant for one user deleted an entire database&lt;/a&gt; despite explicit instructions not to. Other vibe coder founders have been victims of their own &lt;a href="https://x.com/leojrr/status/1901560276488511759?s=20" rel="noopener noreferrer"&gt;unsecured creations&lt;/a&gt;, leading to “&lt;em&gt;maxed out usage on api keys, people bypassing the subscription, creating random shit on db&lt;/em&gt;”.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;“Works now, breaks later” maintenance challenges&lt;/strong&gt;. Because the human doesn’t fully understand the generated code, future modifications or debugging become daunting. As one engineer quipped, many vibe-coded apps hit a “maintenance wall” – everything looks great in a demo, but when a bug arises or a new feature is needed, the AI’s fixes often introduce new problems, since the AI has no memory of why it made certain architectural decisions. Without an engineer who groks the code, each fix can become a frustrating game of whack-a-mole.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Recommendation
&lt;/h2&gt;

&lt;p&gt;Vibe coding can be recommended for non-developers or novice coders who want to build small, non-critical applications. It allows people with domain knowledge (but not coding skills) to automate tasks or create tools they otherwise couldn’t. For instance, a finance analyst “vibe-coding” a custom report generator.&lt;br&gt;&lt;br&gt;
In industry, some product and design teams use this modality to prototype ideas and create working demos to hand off to engineering, instead of just static specs. It’s also useful for early-stage startups or solo developers trying to validate a product idea quickly on a shoestring budget.&lt;br&gt;&lt;br&gt;
In these scenarios, the lack of code quality is acceptable because if the idea proves valuable, the team can rewrite or heavily refactor the code later (and doing so is now cheaper with AI assistance anyway). However, teams should avoid shipping vibe-coded prototypes to production in any long-lived or critical system. As one GitLab principal engineer put it, &lt;a href="https://itrevolution.com/articles/vibe-coding-the-revolutionary-approach-transforming-software-development/#:~:text=%E2%80%9CNo%20vibe%20coding%20while%20I'm%20on%20call!%E2%80%9D,encapsulating%20the%20fierce%20debate%20dividing%20the%20software" rel="noopener noreferrer"&gt;“No vibe coding while I’m on call!”&lt;/a&gt;.&lt;br&gt;&lt;br&gt;
Use vibe coding to explore and validate ideas, but plan to invest in a proper engineering pass if the project needs to be maintained.&lt;/p&gt;

&lt;h1&gt;
  
  
  Guided Prototyping
&lt;/h1&gt;

&lt;p&gt;Developers or even non-technical people run a PoC to see how the AI would implement a feature. The output is reviewed to see if the implementation makes sense and is suitable to be used. In their book on Vibe Coding, Gene Kim and Steve Yegge call this modality “tracer bullet testing”. Tracer bullet testing involves “... creating a thin, working slice of a system that touches all critical components—UI, backend, database, and APIs—to prove the architecture works, rather than just prototyping isolated parts”.&lt;/p&gt;

&lt;p&gt;In &lt;em&gt;Guided Prototyping&lt;/em&gt;, the developer still provides a relatively loose natural-language prompt or goal to the coding agent (similar to vibe coding), but &lt;strong&gt;with an important twist&lt;/strong&gt;: the developer thoroughly &lt;strong&gt;reviews the implementation details&lt;/strong&gt; of the AI’s output and verifies that the approach makes sense. &lt;/p&gt;

&lt;p&gt;Essentially, the AI quickly produces a &lt;em&gt;proof-of-concept implementation&lt;/em&gt;, and a human then inspects that code (and likely runs it) to evaluate its correctness, quality, and suitability. This modality is akin to what Gene Kim and Steve Yegge (in their &lt;a href="https://itrevolution.com/product/vibe-coding-book/" rel="noopener noreferrer"&gt;&lt;em&gt;Vibe Coding&lt;/em&gt; book&lt;/a&gt;) refer to as &lt;em&gt;“tracer bullet testing.”&lt;/em&gt; In software, a tracer bullet is a &lt;strong&gt;thin, working end-to-end slice&lt;/strong&gt; of the system that touches all critical components (UI, backend, database, APIs) but only implements the bare basics. It’s a skeletal but functional version of the feature that shows the architecture will work. &lt;/p&gt;

&lt;p&gt;Guided prototyping uses AI to fire off one or more of these tracer bullets: the AI writes a minimal implementation across the stack, and the developer examines this &lt;em&gt;tracer code&lt;/em&gt; to see if it’s on the right track.&lt;/p&gt;

&lt;p&gt;By reviewing and possibly refining the AI’s code, the engineer ensures the prototype’s &lt;strong&gt;implementation&lt;/strong&gt; (not just functionality) meets their expectations. This might involve checking that coding best practices were followed, that the approach aligns with the intended architecture, or that the code is extensible. Essentially, guided prototyping uses the AI as a rapid coder to generate prototypes, but keeps a human in the loop for technical validation (as opposed to vibe coding’s pure “just run it” approach).&lt;/p&gt;

&lt;h2&gt;
  
  
  Pros
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fast feedback on architecture &amp;amp; feasibility.&lt;/strong&gt; Because tracer-bullet prototypes are working end-to-end, stakeholders get immediate visibility into a feature’s implementation. You can validate early whether the chosen tech stack, APIs, and integrations will actually support the requirements. This reduces risk by exposing architectural or interoperability problems &lt;strong&gt;earlier&lt;/strong&gt; rather than after weeks of development.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mitigates risk through early testing.&lt;/strong&gt; Instead of building parts in isolation, the thin vertical slice will reveal if any critical component (database, external API, etc.) is going to be a blocker. This “system smoke test” catches high-risk issues when they’re easier (and cheaper) to fix. In other words, you prove the &lt;em&gt;path&lt;/em&gt; works before investing heavily.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Team alignment and technical calibration.&lt;/strong&gt; Having a working end-to-end prototype ensures that frontend and backend developers, QA, etc., share a common understanding of how the pieces connect. It’s a concrete reference implementation to discuss. Everyone sees the same thin slice, which promotes &lt;strong&gt;synchronization&lt;/strong&gt; on design decisions early (avoiding big surprises later).
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rapid course-correction and learning.&lt;/strong&gt; If the tracer implementation is off-target, you find out quickly and can adjust the design or requirements with minimal wasted effort. The team can iterate on the prototype or try an alternate approach. In fact, with AI generation being so fast, you could have &lt;strong&gt;multiple prototype implementations&lt;/strong&gt; of a complex feature created in parallel, exploring different approaches. This is an extension of the “optionality” benefit of AI – you might let the agent build two or three variant solutions and then pick the best one after review.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tracer code often becomes the foundation.&lt;/strong&gt; Unlike throwaway prototypes, tracer bullet code is meant to evolve into the final product. So the effort isn’t wasted; the initial AI-guided slice provides a base to gradually flesh out with full functionality, with confidence that the foundations are solid.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Cons
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Can create a false sense of completeness:&lt;/strong&gt; Since it touches all components, the "thin slice" might be mistaken for a production-ready feature.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Requires high alignment on architecture first:&lt;/strong&gt; If the underlying architecture is flawed, the tracer bullet will expose it, but potentially after significant effort has been invested.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Overhead for non-trivial systems:&lt;/strong&gt; Setting up a fully functional end-to-end slice, even a thin one, can be time-consuming for very complex systems with many dependencies.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Focus on breadth over depth:&lt;/strong&gt; The implementation might lack the robustness, error handling, and performance tuning required for production code.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Recommendation
&lt;/h2&gt;

&lt;p&gt;I would recommend using Guided Prototyping when the team faces uncertainty in the implementation and you want to de-risk those unknowns early.&lt;br&gt;&lt;br&gt;
It’s essentially the AI-era equivalent of a technical spike or proof-of-concept, but more formalized and kept runnable. Teams can leverage coding agents to spin up multiple alternative tracer bullet implementations in parallel, then compare which approach is best.&lt;br&gt;&lt;br&gt;
This modality is valuable for projects where the architecture is not proven, or there’s debate about the best design: you can test the waters with minimal cost. Afterward, the knowledge gained should inform the real implementation.&lt;br&gt;&lt;br&gt;
In practice, organizations that already embrace Agile “spikes” or proofs-of-concept will find guided prototyping with AI a natural fit. It’s a way to harness AI’s speed to get concrete answers early in the development cycle, improving decision-making and reducing costly late-stage changes. &lt;/p&gt;

&lt;h1&gt;
  
  
  Autopilot Coding
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;Autopilot Coding&lt;/em&gt; is a modality where the team (or often a solo developer) provides a &lt;strong&gt;well-specified prompt and context&lt;/strong&gt; to the coding agent. This means the desired functionality and even high-level technical design are clearly described and then let the agent generate a substantial chunk of the codebase &lt;em&gt;with minimal human intervention or review&lt;/em&gt;. &lt;/p&gt;

&lt;p&gt;In other words, the developers put the coding agent on “autopilot,” trusting it to produce production-quality code from a solid spec, and they do only a cursory review (if any) of the output. This approach has emerged in some cutting-edge small teams and individual projects, and it’s being pushed to extremes in research experiments.&lt;/p&gt;

&lt;p&gt;In practice, autopilot coding might look like “outsourcing the development” to the agent by providing a detailed functional spec (and perhaps a software design document) and asking it to implement the whole thing (or a large portion of it) while you monitor progress occasionally. &lt;/p&gt;

&lt;p&gt;It assumes &lt;strong&gt;high confidence in the AI’s capabilities&lt;/strong&gt; and output quality. In fact, the team behind Cursor (an AI-augmented IDE) recently did an &lt;a href="https://cursor.com/blog/scaling-agents" rel="noopener noreferrer"&gt;experiment&lt;/a&gt; very much like this: they ran hundreds of AI agents for a week &lt;em&gt;building a browser from scratch&lt;/em&gt;, which resulted in over &lt;strong&gt;1 million lines of code&lt;/strong&gt; across 1,000 files. Simon Willison has also &lt;a href="https://simonwillison.net/2026/Jan/19/scaling-long-running-autonomous-coding" rel="noopener noreferrer"&gt;written&lt;/a&gt; about the Cursor experiment.&lt;/p&gt;

&lt;p&gt;I believe this approach has a future as long as the software to be built is very well specified and can be verified in some way by the agent. If you want to build a web browser, your agents can implement multiple specifications for HTML, CSS, and JavaScript. &lt;/p&gt;

&lt;p&gt;This modality is unorthodox, but it’s attractive to some because it promises &lt;em&gt;unprecedented development speed&lt;/em&gt;. If one agent can write code 10× faster than a human, what about 10 agents working in parallel? Autopilot coding is essentially the “move fast” approach: &lt;strong&gt;spec well, then let the AI rip&lt;/strong&gt;, and only later worry about fixes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pros
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Potential order-of-magnitude productivity gains.&lt;/strong&gt; Advocates claim that with the right prompts and context, AI agents can generate features or even entire products extremely quickly. There are &lt;a href="https://x.com/rauchg/status/2014372677667205606?s=20" rel="noopener noreferrer"&gt;anecdotal reports&lt;/a&gt; of individual developers achieving “100×” or even “1000x” engineers using AI coding assistants end-to-end.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scales beyond a single agent (or human).&lt;/strong&gt; Autopilot coding can involve &lt;em&gt;multiple AI agents working in parallel&lt;/em&gt;, further boosting throughput. Tools like &lt;a href="https://www.conductor.build/" rel="noopener noreferrer"&gt;Conductor&lt;/a&gt; might facilitate this task. Also, &lt;a href="https://linear.app/agents" rel="noopener noreferrer"&gt;Linear&lt;/a&gt; started to offer a new modality to run agents as independent coworkers.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Extreme velocity for well-defined problems.&lt;/strong&gt; If the problem is very well-specified (e.g., implementing a known standard or algorithm), coding agents can churn out a correct solution quickly. For self-contained, verifiable (there is an existing test suite that can validate behavior), specification-driven projects, autopilot coding essentially lets you “skip ahead” in time.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Cons
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Uncovered bugs and security issues.
&lt;/li&gt;
&lt;li&gt;Potential tech debt accumulation
&lt;/li&gt;
&lt;li&gt;Requires a thoughtful upfront specification for long-horizon agent work.
&lt;/li&gt;
&lt;li&gt;For some companies, the code is their IP (Intellectual Property). Not understanding your own IP will affect the business.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unproven and high-risk.&lt;/strong&gt; This methodology is very new and &lt;strong&gt;largely experimental&lt;/strong&gt;. We have a few real-world success stories of an AI-developed codebase at scale that didn’t require major human fixes. As the &lt;a href="https://dora.dev/research/2025/dora-report/" rel="noopener noreferrer"&gt;2025 DORA research&lt;/a&gt; noted, AI tends to &lt;em&gt;amplify&lt;/em&gt; whatever setup you have. It can boost high-performing teams but also &lt;strong&gt;magnify dysfunctions in struggling teams&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Uncertainty, lack of control, and security issues.&lt;/strong&gt; When you trust the agent output without thorough review, you inherently accept a lot of uncertainty. The code may run initially, but hidden bugs or suboptimal choices can lurk beneath the surface. Security vulnerabilities, inefficient algorithms, or simply incorrect edge-case handling might only surface later (possibly in production). Indeed, &lt;a href="https://www.faros.ai/blog/key-takeaways-from-the-dora-report-2025" rel="noopener noreferrer"&gt;data from early adopters&lt;/a&gt; shows that teams using a lot of AI without adapting their process have seen &lt;strong&gt;bug rates increase (by ~9%) and longer review times, with no overall improvement in delivery speed&lt;/strong&gt;. These teams were able to speed up coding, but just created a bottleneck elsewhere or quality issues that neutralized the gains.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Accumulated technical and comprehension debt due to “black box” code.&lt;/strong&gt; A codebase produced largely by AI, without human oversight, can become difficult for developers to understand or maintain. This ossification &lt;strong&gt;is a new kind of tech debt&lt;/strong&gt;: the &lt;em&gt;AI’s design&lt;/em&gt; might be suboptimal, but changing it later is extremely costly when no one has the mental model of the code. This new type of effect has been called by some practitioners “&lt;a href="https://codemanship.wordpress.com/2025/09/30/comprehension-debt-the-ticking-time-bomb-of-llm-generated-code/" rel="noopener noreferrer"&gt;comprehension debt&lt;/a&gt;.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Loss of competitiveness&lt;/strong&gt;. Moreover, if an organization’s competitive advantage is its software, treating the code as a mysterious artifact created by AI (rather than something the team deeply understands) is dangerous. The company’s intellectual property isn’t just the final code output, but the knowledge of why it’s built that way. By letting AI write everything, you risk turning your own codebase into a foreign legacy system from day one
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bugs and incidents can be harder to resolve.&lt;/strong&gt; In autopilot mode, you might encounter the nightmare scenario described earlier in vibe coding, but at a larger scale: something breaks in production and now &lt;em&gt;no engineer is intimately familiar with that part of the system&lt;/em&gt;. Debugging is much harder when you have to ask an AI to explain code it wrote (and that AI might not even have the full context anymore).
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Requires exceptionally clear specifications.&lt;/strong&gt; To even attempt autopilot coding, you must provide very detailed, precise requirements and technical guidelines to the agent(s). Some software components we use every day are heavily documented, and they must also comply with strict specifications. In those cases, this approach might work. For the rest of the software landscape, building such detailed upfront specifications has been proven problematic (remember the problems associated with waterfall processes?).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Recommendation
&lt;/h2&gt;

&lt;p&gt;I think this modality is best suited for developers embarking on &lt;strong&gt;greenfield projects&lt;/strong&gt;, where they are building something entirely new and unconstrained by legacy code. It should also be viable for developers tackling &lt;strong&gt;small-scale brownfield projects&lt;/strong&gt; that they are intimately familiar with, where the existing codebase is manageable and well-understood.&lt;/p&gt;

&lt;p&gt;However, a critical caveat must be applied: &lt;strong&gt;this approach is not recommended for mission-critical projects&lt;/strong&gt;. Relying heavily on agents in such high-stakes environments significantly increases the risk of unforeseen bugs, complex technical debt, and system failures, the kind that might trigger your pager at the most inconvenient hour, such as 3 AM. The cost of a failure in a mission-critical system far outweighs the productivity gains.&lt;/p&gt;

&lt;p&gt;For &lt;strong&gt;solo developers and small teams&lt;/strong&gt;, this agent-centric coding methodology can deliver &lt;strong&gt;good initial outcomes&lt;/strong&gt; and accelerate the early development phase of a project. The rapid generation of functional code provides a strong starting momentum. Nevertheless, this advantage is often counterbalanced by substantial risks as the project inevitably grows in size and complexity. The primary danger lies in the unreviewed technical debt and structural inconsistencies that agents can inadvertently introduce. This "unreviewed" code starts to &lt;strong&gt;creep over the codebase&lt;/strong&gt;, acting like a slow poison.&lt;/p&gt;

&lt;p&gt;This process significantly increases the &lt;a href="https://en.wikipedia.org/wiki/Software_rot" rel="noopener noreferrer"&gt;&lt;strong&gt;code entropy&lt;/strong&gt;&lt;/a&gt;—the measure of disorder and degradation in a codebase. High code entropy has a dual negative effect:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Human Comprehension and Maintainability:&lt;/strong&gt; It drastically affects a human developer's ability to understand, navigate, and therefore maintain the code. Complex, poorly structured, or inconsistent code slows down debugging and feature development.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agent Performance:&lt;/strong&gt; Ironically, the agents themselves begin to suffer. As the codebase becomes more chaotic and less coherent, the coding agent's own ability to accurately understand the existing context and generate correct, high-quality new code diminishes. The agent is effectively generating code based on a deteriorating foundation.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Furthermore, if you are engaged in building &lt;strong&gt;something novel and innovative&lt;/strong&gt;, the resulting code constitutes your &lt;strong&gt;Intellectual Property (IP)&lt;/strong&gt; and is a core business asset.&lt;br&gt;&lt;br&gt;
In this scenario, &lt;strong&gt;you must maintain a deep, granular understanding of how the code works, including all the architectural decisions and underlying trade-offs&lt;/strong&gt;. This deep knowledge is essential for strategic reasons: it allows you to &lt;strong&gt;respond quickly and effectively to market feedback, competitive pressures, and unexpected technical challenges&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
By &lt;strong&gt;outsourcing this foundational knowledge and control to coding agents&lt;/strong&gt;, the business inherently places itself at significant risk. The loss of direct, human-expert IP ownership can compromise the ability to innovate and adapt, fundamentally putting the future of the product and the business itself in jeopardy.&lt;/p&gt;

&lt;h1&gt;
  
  
  Agentic Engineering
&lt;/h1&gt;

&lt;p&gt;In this modality, teams have adopted not only coding agents but also AI throughout the whole SDLC. They invest in context-engineering so when asking the coding agent to create a plan, the agent has access to several internal documents and specifications that can guide the generated implementation into the organization's best practices. They have coding rules, documented architecture, documented design patterns, and best practices available for Agents to be used. When the developer generates a plan, it is usually very detailed in terms of functionality and non-functional requirements. The chunk of work specified in the plan must be kept as small as possible so the size of the generated implementation is also acceptable for a human reviewer (&lt;a href="https://dora.dev/research/2025/dora-report/" rel="noopener noreferrer"&gt;as the 2025 DORA report shows&lt;/a&gt;). Teams also leverage the coding agent to review the code or implement &lt;a href="https://www.coderabbit.ai/" rel="noopener noreferrer"&gt;specific reviewer agents&lt;/a&gt;. Once the PR is created, other human reviewers will finally approve the code. For this approach to work and be production-ready, teams implement several guardrails: rigorous automation testing, high testing coverage, TDD, CI/CD, linting rules, among other practices. Another recommendation provided by the &lt;a href="https://dora.dev/research/2025/dora-report/" rel="noopener noreferrer"&gt;DORA report&lt;/a&gt; is &lt;a href="https://en.wikipedia.org/wiki/Value-stream_mapping" rel="noopener noreferrer"&gt;Value Stream Management (VSM)&lt;/a&gt;. VSM is described as the practice of visualizing, analyzing, and improving the flow of work from idea to customer. The use of VSM should help organizations to track how AI affects lead time, rework, and deployment frequency (&lt;a href="https://dev.to/eabait/how-ai-coding-agents-are-reshaping-developer-workflows-3249"&gt;more here&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Essentially, it’s traditional software engineering supercharged with AI, rather than letting AI run wild.&lt;/p&gt;

&lt;p&gt;Key characteristics of agentic engineering include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Extensive context and prompt engineering.&lt;/strong&gt; Teams invest heavily in providing the AI with the right context: up-to-date internal documentation, architectural guidelines, coding standards, and even &lt;em&gt;organization-specific knowledge bases&lt;/em&gt;. The agent is not coding in a vacuum; it’s informed by the company’s best practices and the project’s design specs.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Small, incremental tasks.&lt;/strong&gt; Rather than asking the agent to build an entire feature in one go, work is broken into small chunks (perhaps a few lines to a few dozen lines of code) that fit within the AI’s attention span and can be reviewed easily. The &lt;a href="https://dora.dev/research/2025/dora-report/" rel="noopener noreferrer"&gt;&lt;strong&gt;2025 DORA report&lt;/strong&gt;&lt;/a&gt; found that working in &lt;strong&gt;small batches&lt;/strong&gt; is still crucial even with AI. Teams that maintained incremental change discipline reaped more benefits, whereas &lt;a href="https://www.faros.ai/blog/key-takeaways-from-the-dora-report-2025" rel="noopener noreferrer"&gt;AI tended to increase PR sizes by 154%&lt;/a&gt; when unmanaged.
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AI-assisted code review and testing.&lt;/strong&gt; In agentic engineering, AI doesn’t just write code but also helps &lt;strong&gt;review&lt;/strong&gt; code. For instance, after an AI generates code, a separate AI agent (or the same agent with a different prompt) might statically analyze that code, suggest improvements, or point out potential bugs. The human developer then reviews both the code and the AI’s review comments. Lately, there has been a &lt;a href="https://www.greptile.com/blog/ai-code-review-bubble" rel="noopener noreferrer"&gt;lot of innovation in this space&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Human oversight and final approval.&lt;/strong&gt; Unlike autopilot coding, here &lt;em&gt;every line of code is ultimately reviewed by a human&lt;/em&gt; (or at least the vast majority of lines, with trivial changes possibly an exception). This ensures that knowledge of the code is internalized by the team and nothing unintelligible slips in. As &lt;a href="https://itrevolution.com/product/vibe-coding-book/" rel="noopener noreferrer"&gt;Kim and Yegge’s book&lt;/a&gt; emphasizes, “delegation of implementation doesn’t mean delegation of responsibility”.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Comprehensive guardrails in the SDLC.&lt;/strong&gt; Agentic engineering often requires that the organization have strong engineering practices already in place: continuous integration/deployment, high test coverage (often &amp;gt;90%), linting and static analysis, security scans, etc. These guardrails catch mistakes, whether made by humans or AI. In fact, &lt;a href="https://dora.dev/research/2025/dora-report/" rel="noopener noreferrer"&gt;DORA’s 2025 research&lt;/a&gt; found that &lt;a href="https://www.faros.ai/blog/key-takeaways-from-the-dora-report-2025#:~:text=Both%20studies%20converge%20on%20a,not%20a%20universal%20productivity%20booster" rel="noopener noreferrer"&gt;AI acts as an &lt;strong&gt;amplifier&lt;/strong&gt;&lt;/a&gt; where good practices yield even better results with AI, and poor practices just get amplified into bigger problems.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Value Stream Management (VSM) and metrics.&lt;/strong&gt; Because of the propensity of AI to shift bottlenecks, top teams use &lt;a href="https://en.wikipedia.org/wiki/Value-stream_mapping" rel="noopener noreferrer"&gt;VSM&lt;/a&gt; to track the flow from idea to production. The &lt;a href="https://dora.dev/research/2025/dora-report/" rel="noopener noreferrer"&gt;DORA 2025 report&lt;/a&gt; specifically highlights VSM as critical to turn individual AI productivity into organizational performance.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Pros
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Significant productivity boost without sacrificing quality.&lt;/strong&gt; Organizations practicing this modality report substantial improvements in throughput while maintaining or even improving code quality. For instance, Booking.com found that after introducing specialized AI coding agents (within a robust dev process), &lt;a href="https://itrevolution.com/articles/vibe-coding-the-revolutionary-approach-transforming-software-development/#:~:text=Meanwhile%2C%20at%20Booking,and%20reduced%20time%20to%20delivery" rel="noopener noreferrer"&gt;they achieved a ~30% productivity gain&lt;/a&gt;, &lt;em&gt;lighter code reviews&lt;/em&gt;, and faster deliveries. Unlike vibe coding, where speed comes at the cost of quality, agentic engineering strives for &lt;strong&gt;both&lt;/strong&gt; speed and quality by catching issues early and often.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Human oversight ensures maintainability and shared knowledge.&lt;/strong&gt; By having developers review AI contributions, the team remains in control of the architecture and understands the codebase. This avoids the “black box code” problem, where knowledge is not lost to the AI.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Faster iteration from plan to working code.&lt;/strong&gt; When AI can handle the boilerplate and rote coding tasks, developers spend more time on higher-level design and polishing.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Focus on higher-value work for humans.&lt;/strong&gt; Since the AI is churning out the basic code, human developers can focus on what humans do best: making judgment calls on architecture, tackling particularly tricky algorithmic or edge-case problems, and handling creative design tasks.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Robust, high-quality codebase.&lt;/strong&gt; With strong guardrails (CI, tests, linting) and careful review in place, the final code that reaches production can actually be &lt;strong&gt;more robust&lt;/strong&gt; than before, because the team can afford to enforce stricter quality standards.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Cons
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Requires process maturity and upfront investment.&lt;/strong&gt; Not every organization is ready to implement this modality. If your CI/CD is flaky, tests are lacking, or your documentation is poor, trying to add AI into the mix can backfire. &lt;a href="https://dora.dev/research/2025/dora-report/" rel="noopener noreferrer"&gt;DORA’s research&lt;/a&gt; indicates that &lt;em&gt;only the most mature teams currently see strong benefits from AI&lt;/em&gt;, whereas many teams see little to no improvement because their bottlenecks simply move elsewhere.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Slower than pure AI in the short run.&lt;/strong&gt; By insisting on human review and small batches, you naturally throttle the AI’s raw speed. For startups in very early stages, this overhead might feel stifling.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Needs high-quality prompts and context engineering.&lt;/strong&gt; The effectiveness of the coding agents depends heavily on the quality of the input they’re given. A &lt;em&gt;poorly guided&lt;/em&gt; AI can waste time, requiring multiple redos, negating the efficiency gains.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Maintaining developer skills and engagement.&lt;/strong&gt; If the AI is handling a lot of the routine coding, developers might lose practice in those areas. Some have expressed concern that &lt;a href="https://ehandbook.com/software-developers-are-literally-losing-their-minds-to-ai-76af358971b6" rel="noopener noreferrer"&gt;over-reliance on AI for low-level coding could, over time, erode engineers’ ability to code without AI or to dive deep into debugging complex issues&lt;/a&gt;. Additionally, there’s a cultural shift: developers have to embrace a more meta-role (like a conductor) which not everyone may enjoy or excel at. There can be initial resistance (“Am I just here to babysit the AI?”). Engineering leaders need to manage this change and ensure team members still feel ownership and pride in the work.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;New failure modes and complexity.&lt;/strong&gt; Introducing AI into the workflow creates new ways things can go wrong, like introducing a security hole that all reviewers miss because it &lt;em&gt;looks&lt;/em&gt; fine, or the AI’s suggested refactor might break something non-obvious. Debugging an issue in code that was partially AI-generated might be tricky if the code is written in an unfamiliar style. Moreover, coordinating multiple AI agents (for coding, reviewing, etc.) is itself a complexity; it’s like adding new team members who work blazingly fast but need training. The processes to manage AI output (like deciding when to trust it vs. override it) are still evolving.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Recommendation
&lt;/h2&gt;

&lt;p&gt;Agentic engineering is emerging as a &lt;strong&gt;suitable modality for professional software teams&lt;/strong&gt; that need to balance velocity with reliability. This is especially true for enterprise environments, organizations building long-term proprietary systems, and any product where understanding and maintaining the code is critical. &lt;/p&gt;

&lt;p&gt;If your software is core IP for your business (your competitive advantage), you can’t afford to treat it as throwaway; you need to deeply understand it, which means humans in the loop. &lt;/p&gt;

&lt;p&gt;This approach is well-suited for teams in &lt;strong&gt;regulated industries or mission-critical domains&lt;/strong&gt; (finance, healthcare, etc.) where there’s zero tolerance for unchecked code. It’s also appropriate for &lt;em&gt;large codebases&lt;/em&gt; and legacy systems, such places where uncontrolled AI codegen could wreak havoc, but guided AI use could significantly improve developer productivity (for example, using an agent to safely refactor a legacy module under close tests and review).&lt;/p&gt;

&lt;p&gt;To implement this modality, organizations should &lt;strong&gt;lay the groundwork&lt;/strong&gt;: invest in automated testing (high coverage), continuous delivery, and developer tooling. They should also train the team in how to work with AI (the “head chef mindset” of orchestrating AI assistants). The &lt;a href="https://dora.dev/research/2025/dora-report/" rel="noopener noreferrer"&gt;2025 DORA report&lt;/a&gt; suggests adopting &lt;strong&gt;“clear AI policies”&lt;/strong&gt; and providing training and playbooks for AI usage. Everyone on the team should know how and when to use the coding agent, what the review protocols are, and what the acceptance criteria for AI-generated code are. Essentially, treat the AI as an ultra-fast junior developer who needs mentorship and strict code review.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;Coding agents are a reality in 2026, and teams are widely adopting them. This article defines four distinct modalities for adopting these agents, each with its own pros, cons, and recommended use case.&lt;/p&gt;

&lt;p&gt;It's important to note that a single team can adopt multiple modalities across different phases of their Software Development Life Cycle (SDLC). For instance, teams using Agentic Engineering might also employ:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Vibe Code&lt;/strong&gt; for developing small utilities or dashboards.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Guided Prototypes&lt;/strong&gt; to evaluate the trade-offs of a feature before starting analysis.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Autopilot Coding&lt;/strong&gt; for running controlled migrations in specific cases.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The greatest value from this technology will be realized by teams that effectively integrate it to solve business problems, all while carefully managing the long-term benefits and potential challenges.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>coding</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>Beyond Code Generation: LLMs for Code Understanding</title>
      <dc:creator>Esteban S. Abait</dc:creator>
      <pubDate>Fri, 02 Jan 2026 12:40:06 +0000</pubDate>
      <link>https://forem.com/eabait/beyond-code-generation-llms-for-code-understanding-3ldn</link>
      <guid>https://forem.com/eabait/beyond-code-generation-llms-for-code-understanding-3ldn</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; &lt;br&gt;
Engineers spend more time understanding code than writing it.&lt;br&gt;&lt;br&gt;
LLM-based tools help, but in different ways.&lt;br&gt;&lt;br&gt;
This article compares modern AI tools for code understanding and explains when to use which one, based on cognitive bottlenecks rather than features.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For most software engineers, the dominant cost of development is not writing new code but &lt;em&gt;understanding existing systems&lt;/em&gt;: navigating large codebases, reconstructing intent, tracing behavior across layers, and assessing the impact of change. &lt;/p&gt;

&lt;p&gt;Empirical studies consistently show that developers spend a substantial portion of their time on comprehension, information seeking, and coordination rather than coding itself, based on large-scale field studies of professional developers’ daily activities and measured comprehension tasks (&lt;a href="https://ieeexplore.ieee.org/document/7829407" rel="noopener noreferrer"&gt;here&lt;/a&gt;, &lt;a href="https://ieeexplore.ieee.org/document/7997917" rel="noopener noreferrer"&gt;and here&lt;/a&gt;). &lt;a href="https://ieeexplore.ieee.org/document/5332232" rel="noopener noreferrer"&gt;Program-comprehension research&lt;/a&gt; further demonstrates that understanding code imposes significant cognitive load and is influenced by factors such as vocabulary, structure, and “naturalness”. &lt;/p&gt;

&lt;p&gt;That is why having new tools to understand large codebases is so important, especially at big enterprises and organizations with lots of apps and services. Modern enterprise environments present unique challenges. They operate with multi-decade legacy systems, polyglot architectures, security and compliance constraints, and large-scale team structures that demand tools with much more rigor than consumer-grade AI assistants.&lt;/p&gt;

&lt;p&gt;In 2025, we have seen a rise in the popularity of tools using LLMs to explain how an application's source code works or to auto-document it. Unlike traditional static analysis, which relies on explicit rules, models, and predefined abstractions, LLM-based analysis leverages learned representations to interpret code semantics and intent. This allows context-aware code analysis (e.g., detecting insecure patterns or summarizing complex logic) with a flexibility beyond hard-coded rules.&lt;/p&gt;

&lt;p&gt;This article explores why LLMs and agent-based tools are a natural fit for program comprehension—and where they still fall short. Based on my own research and hands-on experimentation, I compare a selected set of commercial and open-source tools using a qualitative lens. Rather than reviewing outputs line by line, the goal is to clarify each tool’s strengths and trade-offs and offer practical guidance on when to use which tool, depending on the stage of understanding and the developer’s workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Advantages of using LLMs and agents for code understanding
&lt;/h2&gt;

&lt;p&gt;LLMs are particularly effective at reducing the friction of &lt;em&gt;initial comprehension&lt;/em&gt;: summarizing functions and modules, explaining unfamiliar APIs or idioms, and translating low-level implementation details into higher-level intent. &lt;/p&gt;

&lt;p&gt;When combined with agents, their impact extends beyond isolated snippets to repository-scale understanding. Agentic workflows characterized by iterative planning, tool use, retrieval, and validation enable incremental, multi-step exploration of codebases, rather than single-pass analysis. &lt;/p&gt;

&lt;p&gt;Research and early industrial practice show that &lt;strong&gt;structure-aware context&lt;/strong&gt; (e.g., symbols, call graphs, dependencies, and history) &lt;strong&gt;significantly improves the relevance and usefulness of explanations compared to flat context windows,&lt;/strong&gt; &lt;a href="https://arxiv.org/abs/2402.03630" rel="noopener noreferrer"&gt;as demonstrated in repository-level and IDE-integrated code understanding studies&lt;/a&gt;. These capabilities are especially valuable for onboarding, legacy modernization, bug localization, and code migrations, where the primary challenge is knowing &lt;em&gt;where to look&lt;/em&gt; rather than &lt;em&gt;what to type&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Disadvantages and limitations
&lt;/h2&gt;

&lt;p&gt;Despite their fluency, LLMs do not reliably demonstrate deep semantic understanding of code. Several empirical studies show that models often rely on surface-level lexical or syntactic cues and can fail under small, semantics-preserving transformations,  &lt;a href="https://arxiv.org/html/2504.04372v2" rel="noopener noreferrer"&gt;a limitation demonstrated in semantic fault localization and robustness evaluations of code-focused models&lt;/a&gt;. This creates a risk of false confidence: explanations may sound convincing while being subtly incorrect or incomplete.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://metr.org/blog/2025-07-10-early-2025-ai-experienced-os-dev-study/" rel="noopener noreferrer"&gt;Controlled experiments with experienced professional developers&lt;/a&gt; have shown that AI-assisted workflows can increase task completion time due to verification overhead and context mismatch, even when participants report higher perceived productivity.&lt;/p&gt;

&lt;p&gt;As a result, comprehension gains are highly sensitive to retrieval quality, grounding mechanisms, and task context.&lt;/p&gt;

&lt;h2&gt;
  
  
  LLM-based Tools for Code Understanding
&lt;/h2&gt;

&lt;p&gt;My exploration of LLM-based tools for code understanding started with &lt;a href="https://deepwiki.com/" rel="noopener noreferrer"&gt;DeepWiki&lt;/a&gt;, which I have been using since its early release. As my interest shifted toward analyzing private repositories and experimenting more deeply with the underlying mechanics, I began looking for open-source alternatives. This led me to &lt;a href="https://github.com/sopaco/deepwiki-rs" rel="noopener noreferrer"&gt;deepwiki-rs&lt;/a&gt; and later &lt;a href="https://github.com/AIDotNet/OpenDeepWiki" rel="noopener noreferrer"&gt;OpenDeepWiki&lt;/a&gt;. After starring OpenDeepWiki on GitHub, one of the authors of &lt;a href="https://github.com/davialabs/davia" rel="noopener noreferrer"&gt;Davia&lt;/a&gt; reached out, which introduced me to a different, more collaborative approach to AI-assisted documentation. I later encountered &lt;a href="https://github.com/The-Pocket/PocketFlow-Tutorial-Codebase-Knowledge" rel="noopener noreferrer"&gt;PocketFlow Tutorial Codebase Knowledge&lt;/a&gt; through a technical report, and finally &lt;a href="https://codewiki.google/" rel="noopener noreferrer"&gt;Google Code Wiki&lt;/a&gt; when it was publicly announced, which I followed closely given its enterprise positioning.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;What it produces&lt;/th&gt;
&lt;th&gt;How it’s used&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;DeepWiki&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Wiki-style pages, diagrams, chat&lt;/td&gt;
&lt;td&gt;Read-only exploration of a repository snapshot&lt;/td&gt;
&lt;td&gt;Fast orientation; requires re-indexing to stay fresh&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Google Code Wiki&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Continuously regenerated wiki, diagrams, chat&lt;/td&gt;
&lt;td&gt;Living documentation synchronized with code&lt;/td&gt;
&lt;td&gt;Strong grounding and freshness; enterprise-oriented&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Davia&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Editable docs, visual boards, agent outputs&lt;/td&gt;
&lt;td&gt;Interactive, human-in-the-loop workspace&lt;/td&gt;
&lt;td&gt;Grounding depends on agent integration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;deepwiki-rs&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Structured docs, C4 diagrams&lt;/td&gt;
&lt;td&gt;Architecture analysis and reasoning&lt;/td&gt;
&lt;td&gt;Batch-generated; favors correctness over speed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;OpenDeepWiki&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Structured docs, knowledge graphs&lt;/td&gt;
&lt;td&gt;Queryable knowledge layer for humans &amp;amp; agents&lt;/td&gt;
&lt;td&gt;Can act as infrastructure (MCP server)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;PocketFlow Tutorial Codebase Knowledge&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Guided tutorials, explanations&lt;/td&gt;
&lt;td&gt;Learning and onboarding&lt;/td&gt;
&lt;td&gt;Optimizes clarity over completeness&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Although all of these tools aim to reduce the cost of understanding large codebases, they approach the problem from different angles. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://deepwiki.com/" rel="noopener noreferrer"&gt;DeepWiki&lt;/a&gt; and &lt;a href="https://codewiki.google/" rel="noopener noreferrer"&gt;Google Code Wiki&lt;/a&gt; focus on automatically generating structured, navigable wikis from repositories, optimizing for rapid orientation and high-level understanding. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/sopaco/deepwiki-rs" rel="noopener noreferrer"&gt;deepwiki-rs&lt;/a&gt; emphasizes architecture-first documentation, producing explicit &lt;a href="https://c4model.com/" rel="noopener noreferrer"&gt;C4 models&lt;/a&gt; and structural views that support reasoning about system boundaries and change impact. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/AIDotNet/OpenDeepWiki" rel="noopener noreferrer"&gt;OpenDeepWiki&lt;/a&gt; takes a more infrastructure-oriented approach, positioning itself as a structured code knowledge base that can be queried by both humans and agents and integrated into broader tooling ecosystems. &lt;/p&gt;

&lt;p&gt;In contrast, &lt;a href="https://github.com/davialabs/davia" rel="noopener noreferrer"&gt;Davia&lt;/a&gt; acts as an interactive, human-in-the-loop workspace, where AI agents help generate and evolve documentation collaboratively rather than producing a static artifact. &lt;/p&gt;

&lt;p&gt;Finally, &lt;a href="https://github.com/The-Pocket/PocketFlow-Tutorial-Codebase-Knowledge" rel="noopener noreferrer"&gt;PocketFlow Tutorial Codebase Knowledge&lt;/a&gt; reframes repositories as pedagogical artifacts, prioritizing approachability and onboarding through tutorial-style explanations.&lt;/p&gt;

&lt;p&gt;Together, these tools form a representative cross-section of current approaches to AI-assisted code comprehension, making them well-suited for a qualitative comparison across dimensions such as mental model formation, grounding and trust, freshness over time, and workflow fit.&lt;/p&gt;

&lt;h2&gt;
  
  
  Qualitative dimensions comparison
&lt;/h2&gt;

&lt;p&gt;When comparing AI tools for code understanding, it helps to step back and ask a simple question: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;What part of the thinking process does this tool actually make easier?&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Reading and understanding code is not a single activity but a sequence of cognitive steps. From getting oriented to building confidence, to keeping that understanding up to date as the system evolves. &lt;/p&gt;

&lt;p&gt;The qualitative dimensions below reflect those realities and explain why different tools shine in different situations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mental model formation&lt;/strong&gt; is about how quickly a tool helps you answer the big-picture questions: What is this system? How is it structured? What are the main responsibilities and flows? Tools that excel here reduce the initial cognitive load by externalizing architecture and intent, allowing engineers to move from confusion to clarity without reading every file. This is especially valuable when joining a new project or revisiting a codebase after time away.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Grounding and trust&lt;/strong&gt; address a different concern: Can I rely on what this tool is telling me? Clear explanations are useful, but they only become actionable when they are tied back to concrete code: files, symbols, and implementation details that can be inspected and verified. Tools with strong grounding make it easy to validate claims, while weaker grounding forces engineers to double-check everything manually, reducing trust and limiting real productivity gains.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Freshness over time&lt;/strong&gt; reflects the reality that code changes constantly. Even the best explanation loses value if it no longer matches the current state of the system. Some tools provide powerful snapshots of understanding, while others focus on keeping documentation and explanations synchronized with ongoing code changes. This dimension matters most in fast-moving teams, where stale understanding can be more dangerous than no documentation at all.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Workflow fit&lt;/strong&gt; recognizes that developers ask different questions at different moments. Early on, they want orientation; later, they want precision; sometimes they want learning, other times impact analysis or review support. Tools differ not in overall quality, but in which stage of understanding they optimize. A good fit aligns the tool with the user’s context: new contributor, experienced engineer, architect, or platform team rather than assuming one-size-fits-all comprehension.&lt;/p&gt;

&lt;p&gt;Taken together, I hope these dimensions help explain why no single AI tool “wins” across all scenarios. Each makes deliberate trade-offs to reduce a specific kind of cognitive friction, and understanding those trade-offs is key to choosing and using the right tool effectively.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mental model formation
&lt;/h3&gt;

&lt;p&gt;Mental model formation is about how quickly and accurately a tool helps a developer answer the fundamental question: “What is this system, and how does it fit together?” Different tools approach this problem in distinct ways.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;DeepWiki&lt;/strong&gt; excels at &lt;em&gt;orientation speed&lt;/em&gt;: it synthesizes structure, responsibilities, and flow into wiki-style narratives and diagrams with almost zero setup. Ideal for “what is this repo?” moments.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Google Code Wiki&lt;/strong&gt; goes further by maintaining architectural summaries that stay synchronized with code changes, reducing documentation drift.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;deepwiki-rs&lt;/strong&gt; is strongest when architecture matters more than narrative: &lt;a href="https://c4model.com/" rel="noopener noreferrer"&gt;C4 models&lt;/a&gt; and explicit component relationships help senior engineers reason about system boundaries and change impact.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Davia&lt;/strong&gt; and &lt;strong&gt;OpenDeepWiki&lt;/strong&gt; emphasize &lt;em&gt;semantic structure&lt;/em&gt; (entities, relations, graphs) over prose, which supports deeper, iterative understanding rather than instant summaries.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;PocketFlow&lt;/strong&gt; deliberately simplifies architecture into tutorials, trading completeness for approachability.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In a nutshell: DeepWiki and Google Code Wiki optimize time-to-orientation, deepwiki-rs and OpenDeepWiki emphasize structural correctness, and PocketFlow prioritizes learnability.&lt;/p&gt;

&lt;h3&gt;
  
  
  Grounding and trust
&lt;/h3&gt;

&lt;p&gt;Grounding and trust determine whether an engineer can act on what an AI tool says. Is the output yielded by the tool instantly actionable and linked to specific source code files and line numbers? Can a modernization architect trust the architectural diagrams generated by the tool?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Google Code Wiki&lt;/strong&gt; places a strong emphasis on grounding by design: its chat answers and wiki pages are explicitly linked to current repository artifacts—files, symbols, and definitions—and are regenerated as the code evolves. This tight coupling between explanations and source code reinforces trust and helps reduce hallucination risk, particularly in fast-moving codebases where stale documentation is a common failure mode.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;OpenDeepWiki&lt;/strong&gt; also scores highly on grounding, primarily through its use of structured representations such as knowledge graphs and its ability to act as an MCP (Model Context Protocol) server. Rather than presenting explanations in isolation, it is designed to expose explicit relationships between code elements, making it well-suited as a grounded context provider for downstream agents and tools.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;DeepWiki&lt;/strong&gt; provides stronger grounding than a purely narrative system: its generated pages explicitly reference relevant source files and often include line-level citations, enabling engineers to verify architectural claims against the actual implementation. However, because DeepWiki represents a snapshot of the repository at indexing time, its output is best treated as a grounded but temporal hypothesis—accurate and traceable, yet requiring awareness of potential drift as the codebase changes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;deepwiki-rs&lt;/strong&gt; approaches grounding through explicit, architecture-first artifacts rather than conversational explanations. Its outputs, such as C4 diagrams, component boundaries, and cross-references, are derived directly from static analysis of the source code, which makes their grounding relatively strong and inspectable. This tool implements a 4-step pipeline to generate documentation that includes &lt;a href="https://c4model.com/" rel="noopener noreferrer"&gt;C4 models&lt;/a&gt; of the codebase.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Davia&lt;/strong&gt; exhibits variable grounding characteristics that depend largely on the underlying AI agent and integration context (e.g., Copilot, Cursor). When paired with agents that perform structured retrieval and symbol-level navigation, Davia can support strong traceability; when used with weaker or less-contextual agents, grounding quality correspondingly degrades.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;PocketFlow&lt;/strong&gt; is intentionally weaker on grounding by design. Its primary goal is pedagogical clarity and onboarding, favoring simplified explanations and conceptual walkthroughs over exhaustive traceability to every file or symbol, which makes it effective for learning but less suitable for verification-heavy engineering tasks.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Freshness &amp;amp; evolution
&lt;/h3&gt;

&lt;p&gt;Freshness and evolution capture how well a tool preserves understanding as a codebase changes over time. For enterprises, this is a critical factor where yesterday’s explanation can quickly become misleading.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Google Code Wiki&lt;/strong&gt; is explicitly designed to regenerate content continuously as code changes, which is its defining advantage.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;deepwiki-rs&lt;/strong&gt; and &lt;strong&gt;OpenDeepWiki&lt;/strong&gt; can be re-run to refresh docs, but this is typically batch-driven.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;DeepWiki&lt;/strong&gt; reflects repo state at analysis time; freshness depends on re-indexing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Davia&lt;/strong&gt; shines in &lt;em&gt;interactive evolution&lt;/em&gt;: docs can be edited, refined, and co-created alongside agents.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;PocketFlow&lt;/strong&gt; outputs static tutorials unless the pipeline is rerun.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If “docs rot” is your core pain point, &lt;strong&gt;Google Code Wiki&lt;/strong&gt; is uniquely positioned. Documentation becomes outdated when three things drift apart: 1) code changes frequently (PRs, refactors, dependency updates), 2) docs are regenerated manually or periodically, 3) no automatic coupling exists between code deltas and documentation updates. &lt;/p&gt;

&lt;p&gt;Even AI-generated docs rot if they are: snapshot-based, re-run manually, and detached from the CI/repo lifecycle. DeepWiki, Davia, deepwiki-rs, and OpenDeepWiki operate as snapshots, even if they are very good snapshots.&lt;/p&gt;

&lt;p&gt;On the other hand, Google’s Code Wiki is designed to continuously update a structured wiki for code bases where each wiki section and chat answer is hyperlinked to code files, classes, and functions (&lt;a href="https://developers.googleblog.com/introducing-code-wiki-accelerating-your-code-understanding" rel="noopener noreferrer"&gt;Code Wiki, 2025&lt;/a&gt;).&lt;/p&gt;

&lt;h3&gt;
  
  
  Workflow fit
&lt;/h3&gt;

&lt;p&gt;Workflow fit describes how well a tool aligns with the &lt;strong&gt;moment&lt;/strong&gt; an engineer is in and the type of question they are trying to answer, whether they are onboarding, validating changes, reviewing code, or planning modernization.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Persona&lt;/th&gt;
&lt;th&gt;Best Fit&lt;/th&gt;
&lt;th&gt;Why&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;New codebase contributor&lt;/td&gt;
&lt;td&gt;DeepWiki, PocketFlow&lt;/td&gt;
&lt;td&gt;New contributors need fast orientation, not exhaustive correctness. Their primary questions are what this repo is, how it is structured, and where to start. DeepWiki accelerates this by generating an immediate, structured mental model with minimal setup, while PocketFlow goes further by turning the codebase into guided, beginner-friendly tutorials. Both reduce the initial cognitive barrier to entry.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Enterprise engineer in fast-moving repo&lt;/td&gt;
&lt;td&gt;Google Code Wiki&lt;/td&gt;
&lt;td&gt;In enterprise environments, the dominant risk is documentation drift. Engineers often understand the domain but struggle to keep up with what has changed and whether existing documentation is still accurate. Google Code Wiki addresses this directly by treating documentation as a continuously regenerated artifact, keeping summaries, diagrams, and explanations synchronized with the codebase.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI-native team using agents daily&lt;/td&gt;
&lt;td&gt;Davia, OpenDeepWiki&lt;/td&gt;
&lt;td&gt;AI-native teams want tools that integrate into agent workflows rather than static documentation. Davia provides an interactive, human-in-the-loop workspace where documentation evolves alongside agent reasoning. OpenDeepWiki complements this with structured, machine-readable knowledge that agents can query, reuse, and extend across tasks.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Architect/modernization team&lt;/td&gt;
&lt;td&gt;deepwiki-rs&lt;/td&gt;
&lt;td&gt;Architects prioritize system boundaries, dependencies, and change impact over narrative explanations. deepwiki-rs supports this by producing architecture-first outputs such as C4 diagrams and explicit component relationships, enabling more reliable reasoning about refactoring, modernization, and system decomposition.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Platform/tooling team&lt;/td&gt;
&lt;td&gt;OpenDeepWiki (as infra)&lt;/td&gt;
&lt;td&gt;Platform teams focus on enabling others at scale. OpenDeepWiki can act as a centralized code knowledge layer, ingesting repositories and exposing structured context to IDEs, agents, and internal tools. Its extensibility makes it suitable as shared infrastructure rather than a single-user productivity tool.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Taken together, these dimensions and personas show that adopting LLM-based tools for code understanding is less about choosing the ‘best’ tool and more about choosing the right one for a given moment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;p&gt;LLMs and agent-based tools are best understood as &lt;strong&gt;cognitive amplifiers for code comprehension&lt;/strong&gt;, not as replacements for human judgment or engineering expertise. Across tools like DeepWiki, Google Code Wiki, Davia, and OpenDeepWiki, their strongest and most defensible value is not in producing “answers,” but in &lt;strong&gt;compressing the early phases of understanding&lt;/strong&gt;: helping engineers orient themselves, explore structure, and form testable hypotheses about how a system works. &lt;/p&gt;

&lt;p&gt;In practice, &lt;strong&gt;&lt;em&gt;these tools help engineers move faster from ‘I don’t know this system’ to ‘I know where to look and what to verify&lt;/em&gt;&lt;/strong&gt;. They do this by externalizing structure and intent: surfacing architectures, highlighting key files and relationships, and guiding engineers toward “where to look next.” This aligns with broader DevOps and software delivery research showing that practices which improve team flow and feedback loops (such as shorter lead times, faster deployment frequency, and effective collaboration) correlate strongly with organizational performance and developer productivity beyond raw coding speed (as documented in the yearly &lt;a href="https://dora.dev/" rel="noopener noreferrer"&gt;DORA reports&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;However, sustainable impact depends on &lt;strong&gt;how these tools are integrated&lt;/strong&gt;, not on model capability alone. The most effective setups ground explanations in concrete code artifacts (files, symbols, line ranges), leverage structure-aware context (architecture, dependencies, knowledge graphs), and explicitly frame AI output as a &lt;em&gt;starting point for validation&lt;/em&gt; rather than an authoritative source. Snapshot-based wikis, continuously regenerated documentation, and agent-driven knowledge layers each solve different parts of the problem and must be chosen deliberately based on workflow and organizational needs.&lt;/p&gt;

&lt;p&gt;Finally, teams that succeed with LLMs for code understanding are those that &lt;strong&gt;measure the right outcomes&lt;/strong&gt;. Metrics such as time-to-locate relevant code, time-to-explain a subsystem, onboarding speed, and review latency better reflect real comprehension gains than lines of code generated or tasks automated. When adoption is guided by these understanding-centric outcomes, LLMs and agents can deliver durable, compounding benefits rather than short-lived productivity illusions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources note
&lt;/h2&gt;

&lt;p&gt;This article draws on peer-reviewed program comprehension research, recent empirical studies on AI-assisted development, and primary documentation from the tools discussed. All claims are supported by publicly available sources linked inline.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>codeunderstanding</category>
      <category>agents</category>
    </item>
    <item>
      <title>How AI Coding Agents Are Reshaping Developer Workflows</title>
      <dc:creator>Esteban S. Abait</dc:creator>
      <pubDate>Wed, 05 Nov 2025 13:47:38 +0000</pubDate>
      <link>https://forem.com/eabait/how-ai-coding-agents-are-reshaping-developer-workflows-3249</link>
      <guid>https://forem.com/eabait/how-ai-coding-agents-are-reshaping-developer-workflows-3249</guid>
      <description>&lt;p&gt;&lt;em&gt;By Esteban S. Abait — November 2025&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The following article is what I would call the summarization of my own research. This 2025, I have been deep into understanding how &lt;em&gt;AI Agents&lt;/em&gt; are changing the Software Development Life Cycle (SDLC) and how they are transforming the workflows developers use to &lt;em&gt;deliver&lt;/em&gt; software. The article also mixes some of my opinions based on my own side project experiences (&lt;a href="https://dev.to/eabait/designing-agentic-workflows-lessons-from-orchestration-context-and-ux-13j"&gt;like this one&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;There is a common agreement in the industry that &lt;strong&gt;new best practices for coding and software engineering are emerging&lt;/strong&gt; as a result of adopting AI to accelerate the SDLC.&lt;/p&gt;

&lt;p&gt;Ever since I read the seminal book &lt;a href="https://itrevolution.com/product/accelerate/" rel="noopener noreferrer"&gt;&lt;em&gt;Accelerate&lt;/em&gt;&lt;/a&gt;, I have closely followed the &lt;a href="https://dora.dev/research/2025/dora-report/" rel="noopener noreferrer"&gt;DORA (DevOps Research and Assessment)&lt;/a&gt; reports to identify which practices actually work for software organizations. The DORA reports are based on rigorous statistical analysis of large-scale surveys of thousands of technology professionals worldwide. Their mission is to identify practices that predict software delivery performance and other organizational outcomes.&lt;/p&gt;

&lt;p&gt;The goal of this article is to review a few real-world documented experiences from developers experimenting with AI coding agents and to &lt;strong&gt;contrast them with the latest DORA 2025 State of AI-Assisted Software Development Report&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The selected articles reveal how developers are changing their day-to-day workflows through &lt;em&gt;agentic, parallel, and vibe-coding loops&lt;/em&gt;. Comparing the findings of these articles against DORA’s insights sheds light on what is truly working and what new ideas are emerging from the field that can be leveraged in enterprise settings.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Developers are building &lt;em&gt;agentic loops&lt;/em&gt;, not just prompts
&lt;/h2&gt;

&lt;p&gt;In his post &lt;em&gt;&lt;a href="https://simonwillison.net/2025/Sep/30/designing-agentic-loops/" rel="noopener noreferrer"&gt;Designing Agentic Loops&lt;/a&gt;&lt;/em&gt;, Simon Willison argues that the future of AI-assisted development lies in &lt;em&gt;goal-driven loops&lt;/em&gt;, not one-off prompts:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Analyze → Plan → Implement → Test → Review → Iterate&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Rather than treating AI as autocomplete, developers now design &lt;em&gt;closed feedback loops&lt;/em&gt; where agents can reason, test, and refine outputs.&lt;br&gt;&lt;br&gt;
DORA 2025 backs this: throughput rises when feedback loops exist — but stability drops if they’re missing or unmanaged.&lt;/p&gt;

&lt;p&gt;The Kim &amp;amp; Yegge essay &lt;em&gt;&lt;a href="https://itrevolution.com/articles/the-vibe-coding-loop" rel="noopener noreferrer"&gt;The Vibe Coding Loop&lt;/a&gt;&lt;/em&gt; extends this idea: vibe-coding reframes development as &lt;strong&gt;continuous conversation and orchestration&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
The developer’s role becomes less about typing code and more about &lt;em&gt;directing agents&lt;/em&gt; through intent, goals, and feedback.&lt;br&gt;&lt;br&gt;
It’s still engineering — but at a higher altitude.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Quality internal platforms are the new accelerators
&lt;/h2&gt;

&lt;p&gt;The DORA report emphasizes that &lt;strong&gt;Quality Internal Platforms&lt;/strong&gt; (QIP) amplify AI’s benefits. So, what is a QIP? A QIP is defined as a set of shared systems, services, and code artifacts that standardize and abstract best practices, enabling developers to build and deliver reliable, secure applications quickly and independently. Typically, this platform consists of shared CI/CD, standard pipelines, self-service tools, guardrails, observability tools, and access to development environments, among others.&lt;/p&gt;

&lt;p&gt;In &lt;em&gt;&lt;a href="https://blog.joemag.dev/2025/10/the-new-calculus-of-ai-based-coding.html" rel="noopener noreferrer"&gt;The New Calculus of AI-based Coding&lt;/a&gt;&lt;/em&gt;, Joe Magerramov explains how his team achieves ~80% AI-generated commits through a strictly controlled environment with “steering rules,” review gates, and fast pipelines.&lt;br&gt;&lt;br&gt;
Freedom without structure leads to chaos; structure with autonomy enables safe speed.  &lt;/p&gt;

&lt;p&gt;Magerramove experience matches what DORA considers a QIP and draws a similar conclusion where the developer platform boosts AI’s positive impact and creates psychological safety for teams to experiment responsibly.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Context is the new fuel
&lt;/h2&gt;

&lt;p&gt;Every modern reflection on agentic coding echoes the same point: context beats clever prompting.&lt;br&gt;&lt;br&gt;
In &lt;em&gt;&lt;a href="https://steipete.me/posts/just-talk-to-it" rel="noopener noreferrer"&gt;Just Talk To It&lt;/a&gt;&lt;/em&gt;, Peter Steinberger notes that agents should “read the code, docs, and tests” instead of being micromanaged through verbose prompts.&lt;br&gt;&lt;br&gt;
Magerramov adds that internal test harnesses, mocks, and dependency fakes provide the “scaffolding” that lets agents iterate confidently.&lt;/p&gt;

&lt;p&gt;The vibe-coding framework described in &lt;em&gt;&lt;a href="https://itrevolution.com/articles/the-key-vibe-coding-practices" rel="noopener noreferrer"&gt;The Key Vibe Coding Practices&lt;/a&gt;&lt;/em&gt; extends this: developers maintain a shared context across agents (what Kim &amp;amp; Yegge call the &lt;em&gt;“vibe space”&lt;/em&gt;) so that multiple agents operate within the same state of understanding.  &lt;/p&gt;

&lt;p&gt;That shared context is exactly what DORA categorizes as &lt;strong&gt;AI-Accessible Internal Data&lt;/strong&gt;. As stated in the DORA report: &lt;em&gt;Connect your AI tools to your internal systems to move beyond generic assistance and unlock boosts in individual effectiveness and code quality. This means going beyond simply procuring licenses and investing the engineering effort to give your AI tools secure access to internal documentation, codebases, and other data sources. This provides the company-specific context necessary for the tools to be maximally effective.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  4. Clarity builds trust (and reduces friction)
&lt;/h2&gt;

&lt;p&gt;Willison advocates sandboxing and “blast radius” controls; Magerramov requires every AI commit to be reviewed by a human.&lt;br&gt;&lt;br&gt;
This is not bureaucracy — it’s how teams build trust.&lt;br&gt;&lt;br&gt;
DORA calls this a &lt;strong&gt;Clear + Communicated AI Stance&lt;/strong&gt;: A &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;clear and communicated AI stance" refers to the comprehensibility and awareness of an organization's official position regarding how its developers are expected and permitted to use AI-assisted development tools.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In a nutshell, organizations must publish policies for tools, scope, and security, and officially foster their adoption. When developers know the rules, they experiment more boldly.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Parallel agents and small batches: the new flow unit
&lt;/h2&gt;

&lt;p&gt;The next frontier in agentic practice is &lt;strong&gt;parallelism&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
In &lt;em&gt;&lt;a href="https://simonwillison.net/2025/Oct/5/parallel-coding-agents/" rel="noopener noreferrer"&gt;Embracing the Parallel Coding Agent Lifestyle&lt;/a&gt;&lt;/em&gt;, Willison describes running multiple agents side-by-side, each attempting a feature or fix, then comparing and merging results.&lt;br&gt;&lt;br&gt;
The &lt;em&gt;Pragmatic Engineer&lt;/em&gt; newsletter calls this &lt;em&gt;“programming by kicking off parallel agents”&lt;/em&gt; where one agent explores approach A, another tests approach B, and the developer acts as reviewer/orchestrator.&lt;/p&gt;

&lt;p&gt;This fits beautifully with DORA’s findings: &lt;strong&gt;Working in Small Batches&lt;/strong&gt; and &lt;strong&gt;Strong Version Control Practices&lt;/strong&gt; improve delivery speed and stability.  &lt;/p&gt;

&lt;p&gt;Parallel agents could potentially &lt;em&gt;scale the small-batch principle horizontally&lt;/em&gt; multiple independent changes, fast feedback, safe integration.  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;However, more research will be needed to ensure parallel agents provide a real gain in productivity.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  6. UX and developer experience define adoption
&lt;/h2&gt;

&lt;p&gt;Kim &amp;amp; Yegge’s &lt;em&gt;Vibe Coding Loop&lt;/em&gt; positions the developer as a &lt;strong&gt;conductor of agents&lt;/strong&gt;, using language, emotion, and intent to shape outcomes.&lt;br&gt;&lt;br&gt;
Steinberger’s observations about cognitive load reinforce this: for creative tasks, AI should respond to &lt;em&gt;intent&lt;/em&gt;, not flood you with completions.&lt;br&gt;&lt;br&gt;
Magerramov adds mode-switching with chat for ideation, completions for boilerplate, and agentic commits for execution. This pattern is what DORA labels as &lt;strong&gt;User-Centric Focus&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Together, vibe-coding and parallel-agents illustrate a new UX layer: AI is not a single assistant but an ensemble you conduct.  &lt;/p&gt;




&lt;h2&gt;
  
  
  7. Value appears when the loop connects to the business
&lt;/h2&gt;

&lt;p&gt;At the enterprise level, DORA stresses &lt;strong&gt;Value Stream Management (VSM)&lt;/strong&gt;. VSM is described as the practice of visualizing, analyzing, and improving the flow of work from idea to customer. This practice involves charting the entire software delivery lifecycle, which covers: product discovery, design, development, testing, deployment, and operations.&lt;/p&gt;

&lt;p&gt;The most significant finding regarding VSM in the context of the State of AI-assisted Software Development (2025) is that it acts as the force multiplier that ensures AI investment delivers a competitive advantage. The use of VSM should help organizations to track how AI affects lead time, rework, and deployment frequency. In essence, VSM provides the necessary clarity and system view required to unlock new technologies like AI, preventing them from creating "disconnected local optimizations" and instead ensuring they translate into significant organizational advantage.&lt;/p&gt;

&lt;p&gt;This finding is also supported by other experiences. Magerramov calls this the “cost-benefit rebalance”: as agentic loops increase velocity, you must upgrade testing and infrastructure to maintain trust.  &lt;/p&gt;

&lt;p&gt;Vibe-coding adds a human dimension here: teams should measure not just velocity but &lt;em&gt;quality of flow&lt;/em&gt; — how collaboration feels and how developers experience creative momentum.&lt;/p&gt;




&lt;h2&gt;
  
  
  8. The Unified Playbook
&lt;/h2&gt;

&lt;p&gt;The following is a table that summarizes the findings of all the surveyed sources for successful AI Agents adoption.  &lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Focus Area&lt;/th&gt;
&lt;th&gt;Practical Action&lt;/th&gt;
&lt;th&gt;Expected Effect&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Policy &amp;amp; Trust&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Publish clear AI usage policy; require human review for agent commits.&lt;/td&gt;
&lt;td&gt;Builds confidence and reduces risk.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Context Grounding&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Connect AI tools to internal repos, tests, and “vibe spaces.”&lt;/td&gt;
&lt;td&gt;Improves accuracy and code quality.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Platform Engineering&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Invest in strong internal platforms and fast feedback loops.&lt;/td&gt;
&lt;td&gt;Amplifies AI impact, reduces friction.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Flow Efficiency&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Adopt agentic loops and parallel agents; prefer small batches.&lt;/td&gt;
&lt;td&gt;Improves throughput and stability.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Human Oversight&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Keep reviewers in the loop; instrument metrics of trust.&lt;/td&gt;
&lt;td&gt;Controls instability and builds learning.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Developer UX&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Embrace vibe-coding principles — intent-driven orchestration, mode switching.&lt;/td&gt;
&lt;td&gt;Reduces cognitive load, enhances flow.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Value Measurement&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Use VSM metrics and developer experience surveys to measure impact.&lt;/td&gt;
&lt;td&gt;Converts speed into sustainable value.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Final Takeaway
&lt;/h2&gt;

&lt;p&gt;AI coding agents aren’t replacing developers, they’re reshaping &lt;em&gt;how developers work&lt;/em&gt;.&lt;br&gt;&lt;br&gt;
The modern workflow is a blend of &lt;strong&gt;agentic loops&lt;/strong&gt; that are best leveraged by internal quality platforms, grounded in the seven DORA capabilities that make AI effective in real teams.&lt;br&gt;&lt;br&gt;
The teams winning with AI aren’t chasing full autonomy; they’re mastering value streams, working in small chunks, creating feedback loops, and using mature internal development platforms with clear policies and agents grounded in a shared internal context.  &lt;/p&gt;




&lt;h3&gt;
  
  
  References
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://simonwillison.net/2025/Sep/30/designing-agentic-loops/" rel="noopener noreferrer"&gt;Designing Agentic Loops — Simon Willison&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://simonwillison.net/2025/Oct/5/parallel-coding-agents/" rel="noopener noreferrer"&gt;Embracing the Parallel Coding Agent Lifestyle — Simon Willison&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://steipete.me/posts/just-talk-to-it" rel="noopener noreferrer"&gt;Just Talk To It — Peter Steinberger&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://itrevolution.com/articles/the-vibe-coding-loop" rel="noopener noreferrer"&gt;The Vibe Coding Loop — IT Revolution&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://itrevolution.com/articles/the-key-vibe-coding-practices" rel="noopener noreferrer"&gt;The Key Vibe Coding Practices — IT Revolution&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://newsletter.pragmaticengineer.com/p/new-trend-programming-by-kicking" rel="noopener noreferrer"&gt;Programming by Kicking Off Parallel Agents — The Pragmatic Engineer&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.joemag.dev/2025/10/the-new-calculus-of-ai-based-coding.html" rel="noopener noreferrer"&gt;The New Calculus of AI-based Coding — Joe Magerramov&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dora.dev/research/ai/2025" rel="noopener noreferrer"&gt;2025 DORA State of AI-Assisted Software Development Report&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Acknowledgment: This article was researched and drafted in collaboration with ChatGPT (GPT-5), used as a co-writer and technical synthesis partner.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>softwareengineering</category>
      <category>productivity</category>
      <category>agents</category>
    </item>
    <item>
      <title>Designing Agentic Workflows: Lessons from Orchestration, Context, and UX</title>
      <dc:creator>Esteban S. Abait</dc:creator>
      <pubDate>Wed, 22 Oct 2025 01:14:41 +0000</pubDate>
      <link>https://forem.com/eabait/designing-agentic-workflows-lessons-from-orchestration-context-and-ux-13j</link>
      <guid>https://forem.com/eabait/designing-agentic-workflows-lessons-from-orchestration-context-and-ux-13j</guid>
      <description>&lt;p&gt;Many challenges in AI products stem less from choosing frameworks and more from how user experience (UX) and architecture shape each other. &lt;/p&gt;

&lt;p&gt;I first noticed this while using ChatGPT to draft and maintain product requirement documents (PRDs) — reusing prompt variants, manually curating context, and constantly tweaking outputs to stay aligned. The workflow technically worked, but it felt brittle and overly manual.&lt;/p&gt;

&lt;p&gt;That experience raised a question: &lt;strong&gt;What might it take for an &lt;em&gt;agentic workflow&lt;/em&gt; — a coordinated system of specialized LLM sub-agents orchestrated by code rather than a single prompt — to produce and maintain a complex artifact like a PRD without so much manual prompting, context oversight, and guesswork?&lt;/strong&gt; More broadly, how could changes in architecture and UX design improve usability, predictability, and trust in such systems?&lt;/p&gt;

&lt;p&gt;This write-up shares early &lt;strong&gt;technical and UX explorations behind building an agentic workflow for structured artifacts&lt;/strong&gt;, using PRDs as the initial testbed. The goal wasn’t to ship a product but to experiment — testing hypotheses about orchestration, context design, and agent-centric UX. Although exploratory, the lessons may apply to multi-step, artifact-producing AI workflows in general.&lt;/p&gt;

&lt;p&gt;Terminology and scope: This is an agentic workflow—LLMs and tools orchestrated through predefined code paths—rather than an autonomous agent that directs its own tools. The hypotheses here are exploratory and intended to inform agents and AI‑powered products more broadly; this project is a working lab, not a shipped product.&lt;/p&gt;




&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Audience and Stack&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Iteration 0 – Initial Architecture&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Iteration 1 – Context Awareness&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Iteration 2 – UX-Driven Agentic Workflow&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Key UX Principles and Screens&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Architectural Foundations Behind the UX&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Design Principles for Agentic Workflows&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;**Creation vs. Editing
&lt;/li&gt;

&lt;li&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/li&gt;

&lt;li&gt;&lt;strong&gt;Working Hypotheses&lt;/strong&gt;&lt;/li&gt;

&lt;li&gt;&lt;strong&gt;References&lt;/strong&gt;&lt;/li&gt;

&lt;/ul&gt;




&lt;h2&gt;
  
  
  Audience and Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Audience:&lt;/strong&gt; AI engineers, architects, product designers, and UX practitioners working on multi-step or long-running agentic workflows and AI-powered products.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stack:&lt;/strong&gt; TypeScript monorepo, Vercel AI SDK, Zod schemas, Next.js frontend, OpenRouter integration.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Repository:&lt;/strong&gt; &lt;a href="https://github.com/eabait/product-agents" rel="noopener noreferrer"&gt;github.com/eabait/product-agents&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Influences:&lt;/strong&gt;
Anthropic on orchestration and context engineering,&lt;sup&gt;&lt;a href="https://www.anthropic.com/engineering/building-effective-agents" rel="noopener noreferrer"&gt;1&lt;/a&gt;, &lt;a href="https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents" rel="noopener noreferrer"&gt;2&lt;/a&gt;&lt;/sup&gt;
Breunig on context failures and curation,&lt;sup&gt;&lt;a href="https://www.dbreunig.com/2025/06/22/how-contexts-fail-and-how-to-fix-them.html" rel="noopener noreferrer"&gt;3&lt;/a&gt;, &lt;a href="https://www.dbreunig.com/2025/06/26/how-to-fix-your-context.html" rel="noopener noreferrer"&gt;4&lt;/a&gt;&lt;/sup&gt;
Luke Wroblewski on UX patterns in AI,&lt;sup&gt;&lt;a href="https://lukew.com/ff/entry.asp?2107" rel="noopener noreferrer"&gt;5&lt;/a&gt;, &lt;a href="https://lukew.com/ff/entry.asp?2113" rel="noopener noreferrer"&gt;6&lt;/a&gt;&lt;/sup&gt;
Jakob Nielsen on wait-time transparency and “Slow AI.”&lt;sup&gt;&lt;a href="https://jakobnielsenphd.substack.com/p/slow-ai" rel="noopener noreferrer"&gt;7&lt;/a&gt;&lt;/sup&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Iteration 0 – Initial Architecture
&lt;/h2&gt;

&lt;p&gt;The first version established the core shape of the workflow, introducing three key roles within the agentic system:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Analyzer&lt;/strong&gt; - a subagent that extracts or classifies structured information.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Writer&lt;/strong&gt; - a subagent responsible for generating a specific section of the PRD.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Orchestrator&lt;/strong&gt; - the controller that coordinates analyzers and writers across the workflow. This is implemented directly in the code without using an LLM (as opposed to the definition given by Anthropic&lt;sup&gt;&lt;a href="https://www.anthropic.com/engineering/building-effective-agents" rel="noopener noreferrer"&gt;1&lt;/a&gt;).&lt;/sup&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Together, these components formed the foundation of the agentic workflow:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Clarification subagent&lt;/strong&gt; acts as a gate before analysis — Ensures there’s enough grounding to write anything; the system asks 0–3 targeted questions, then proceeds or returns with gaps. Example: if “target users” is missing, it prompts for personas and primary jobs-to-be-done before any writer runs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Centralized analyzers&lt;/strong&gt;: Context, Risks, Summary — Consolidates one-pass extraction into a structured bundle reused by all writers, avoiding repeated reasoning and drift. Example: the risk list produced once is consumed by multiple sections needing constraints/assumptions.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multiple section writers&lt;/strong&gt; (e.g., context, problem, assumptions, metrics) — Decouples generation so sections can evolve independently and merge deterministically. Example: in a PRD or similar structured artifact, only the Metrics writer reruns when you request “tighten success metrics.”
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dual paths&lt;/strong&gt;: full PRD generation and targeted edits — Selects creation vs. edition based on inputs and presence of an existing PRD to improve efficiency and stability. Example: if a prior PRD is supplied and the request says “update constraints,” only that slice is scheduled.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shared-analysis&lt;/strong&gt; caching to avoid redundant analyzer runs — Keys analyzer outputs by inputs so subsequent edits reuse results without recomputing. Example: copy tweaks reuse the same context summary instead of re-extracting from scratch.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Early issues still surfaced:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Analyzer overhead and coupling increased latency
&lt;/li&gt;
&lt;li&gt;Early UI offered limited visibility into the workflow’s steps
&lt;/li&gt;
&lt;li&gt;Edition path existed but lacked confidence/telemetry to guide edits&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These friction points informed the next iteration, which focused on improving context handling and reducing latency.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxhu38abgw2j4dpdyi6w4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxhu38abgw2j4dpdyi6w4.png" alt="Mermaid diagram for v0" width="800" height="1225"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Iteration 1 – Context Awareness
&lt;/h2&gt;

&lt;p&gt;Applying ideas from Anthropic and Breunig, the workflow evolved toward &lt;strong&gt;planned cognition and curated context&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Five-section PRD redesign&lt;/strong&gt; (Target Users, Solution, Features, Metrics, Constraints) — Aligns the artifact with audience-facing sections and reduces ambiguity about ownership. Example: “add OKRs” maps cleanly to the Metrics section.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Parallel section writers&lt;/strong&gt; atop a shared ContextAnalyzer result — Lowers latency and coupling by letting independent writers run concurrently on the same structured inputs. Example: Solution and Features complete in parallel.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SectionDetectionAnalyzer subagent&lt;/strong&gt; for edit routing and autodetecting existing PRDs — Interprets requests and selects affected sections, and if a PRD is present, defaults to edition. Example: “tighten constraints about latency” routes only to Constraints.
&lt;/li&gt;
&lt;li&gt;Confidence metadata per section to aid UX transparency — Each output carries a confidence hint so the UI can flag fragile changes. Example: low confidence on Personas nudges the user to review.
&lt;/li&gt;
&lt;li&gt;Modularized pipeline helpers (clarification check, shared analysis, parallel sections, assembly) — Improves maintainability and testability; responsibilities are isolated so new writers or analyzers slot in without side effects.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F81u637zot51l0y8lgrik.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F81u637zot51l0y8lgrik.png" alt="Mermaid diagram for v1" width="800" height="1182"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once the workflow became context-aware, the next challenge was making its cognition visible to users — bringing UX principles directly into orchestration.&lt;/p&gt;




&lt;h2&gt;
  
  
  Iteration 2 – UX-Driven Agentic Workflow
&lt;/h2&gt;

&lt;p&gt;With context reliability established, the project entered a new phase: aligning architectural choices with the UX principles that would make those inner workings transparent.&lt;/p&gt;

&lt;p&gt;At this point, the work shifted toward &lt;strong&gt;system legibility&lt;/strong&gt;. Wroblewski highlights recurring UX gaps in AI around &lt;strong&gt;context awareness, capability awareness, and readability&lt;/strong&gt;,&lt;sup&gt;&lt;a href="https://lukew.com/ff/entry.asp?2107" rel="noopener noreferrer"&gt;5&lt;/a&gt;&lt;/sup&gt; and Nielsen emphasizes transparency around wait time for “Slow AI.”&lt;sup&gt;&lt;a href="https://jakobnielsenphd.substack.com/p/slow-ai" rel="noopener noreferrer"&gt;7&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;

&lt;p&gt;These insights suggested that UX requirements should shape orchestration decisions, not just react to them.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgh796xdwudqv1hroxvi4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgh796xdwudqv1hroxvi4.png" alt="Mermaid diagram for v2" width="800" height="1697"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What changed and why:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Streaming progress events&lt;/strong&gt; — Reduces “Slow AI” ambiguity by emitting real-time updates (see &lt;em&gt;Principle #1: Visible Capabilities + Streaming&lt;/em&gt;).
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Configurable workers&lt;/strong&gt; (per-writer runtime settings) — Allows specialization (e.g., different models/temperatures) while enforcing streaming capability for observability. Example: a concise, extractive analyzer vs. a creative section writer.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Usage and cost accounting&lt;/strong&gt; — Surfaces telemetry and burn-rate transparency (see &lt;em&gt;Principle #6: Cost Visibility&lt;/em&gt;).
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Edition parity and fallbacks&lt;/strong&gt; — Heuristics prevent silent no-op edits, and top-level fields stay in sync with partial updates to avoid stale PRDs. Example: editing Constraints also updates the summary if needed.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Key UX Principles and Screens
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1. Visible Capabilities + Streaming (addressing “Slow AI”)&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;Starter affordances clarify what the agentic workflow can do. Streaming exposes long-running steps to reduce ambiguity.&lt;/em&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6sxl9fqtlz112vjoh9md.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6sxl9fqtlz112vjoh9md.gif" alt="Streaming agentic workflow steps UI" width="760" height="738"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Context Awareness and Control&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;Users can inspect, pin, or exclude context items before generation.&lt;/em&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiqb0pplrkt1szym1wvca.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiqb0pplrkt1szym1wvca.gif" alt="Context inspector UI" width="223" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Structured Output Instead of “Walls of Text”&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;Structured components allow partial edits and reduce cognitive load.&lt;/em&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmdftd52wbucbxpzz9yyg.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmdftd52wbucbxpzz9yyg.gif" alt="Structured PRD renderer" width="592" height="494"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Inspectability and Control (Configuration Drawer)&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;Exposes subagents toggles—temperature, model choice, context filters—without forcing a detour into config files&lt;/em&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F58wy8uvng0mn3tf8s59o.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F58wy8uvng0mn3tf8s59o.gif" alt="Configuration drawer UI" width="561" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Localized Updates (Section-level Editing)&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;When someone says, “Change user personas to be from LATAM,” the system routes only the Personas writer, preserving other sections.&lt;/em&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7polrlltctla8m2bmi1a.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7polrlltctla8m2bmi1a.gif" alt="Section-level editing UI" width="296" height="246"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Cost Visibility&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;Surfaces estimated token usage and dollar cost per run. Engineers care about the burn.&lt;/em&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwgj0sz1y560vpexuvylz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwgj0sz1y560vpexuvylz.png" alt="Token cost meter UI" width="796" height="61"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Each UI principle emerges directly from the system’s underlying architecture — together, they form a feedback loop between technical design and user experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Architectural Foundations Behind the UX
&lt;/h3&gt;

&lt;p&gt;The UI work only “clicked” once the agent runtime supported it. Every visible affordance required a corresponding architectural move. Implementation details are available in the &lt;a href="https://github.com/eabait/product-agents" rel="noopener noreferrer"&gt;open-source repository&lt;/a&gt;.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;UX Principle&lt;/th&gt;
&lt;th&gt;Architecture Foundation&lt;/th&gt;
&lt;th&gt;How It Works&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Localized edits&lt;/td&gt;
&lt;td&gt;Section-level writers&lt;/td&gt;
&lt;td&gt;Enables partial regeneration of sections (demonstrated in &lt;em&gt;Principle #5: Localized Updates&lt;/em&gt;).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Explainability&lt;/td&gt;
&lt;td&gt;Orchestrator hooks for intermediate artifacts&lt;/td&gt;
&lt;td&gt;The orchestrator emits progress events and returns analyzer payloads before final assembly. These feed the status stream that the UI renders as visible steps, making the system’s reasoning legible.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Streaming transparency&lt;/td&gt;
&lt;td&gt;Event-based updates&lt;/td&gt;
&lt;td&gt;Progress callbacks stream over Server-Sent Events, letting the interface update the timeline and status indicators as each subagent completes — no more opaque spinners while the model “thinks.”&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Inspectable context&lt;/td&gt;
&lt;td&gt;Shared analysis bundle + context registry&lt;/td&gt;
&lt;td&gt;Powers the context inspector UI (see &lt;em&gt;Principle #2: Context Awareness and Control)&lt;/em&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Repeatability&lt;/td&gt;
&lt;td&gt;Audit logs and metadata&lt;/td&gt;
&lt;td&gt;Each run captures usage metrics, cost estimates, and section-level metadata. The audit trail can be replayed so users can trace what changed, which model handled it, and how many tokens it consumed.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Configurable workers&lt;/td&gt;
&lt;td&gt;Per-worker runtime settings&lt;/td&gt;
&lt;td&gt;Each analyzer and writer can run with its own model configuration, temperature, or parameters, as long as it supports streaming for progress visibility.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Edition parity &amp;amp; fallbacks&lt;/td&gt;
&lt;td&gt;Heuristic coverage + field sync&lt;/td&gt;
&lt;td&gt;Heuristics prevent silent no-op edits; top-level PRD fields stay consistent with edited sections, ensuring partial updates don’t produce stale data.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Together, these shifts align the system’s internals with what the UI promises — when the interface says “only this section will change” or “here’s the context you’re about to send,” the architecture makes that statement true.&lt;/p&gt;




&lt;h3&gt;
  
  
  Design Principles for Agentic Workflows
&lt;/h3&gt;

&lt;p&gt;These exploratory principles emerged while iterating on an agentic workflow — intended to be useful for agents and AI-powered products more broadly:&lt;/p&gt;

&lt;blockquote&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Expose System Cognition&lt;/strong&gt; — When the system runs/thinks, show its phases (streaming, intermediate artifacts).
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Let Users Curate Context&lt;/strong&gt; — Treat context as a user-visible surface.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Structure the Artifact&lt;/strong&gt; — Use sections and diffs, not monolithic text.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Localize Change&lt;/strong&gt; — Architect so edits update only what changed.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Make Capabilities Legible&lt;/strong&gt; — Provide affordances and visible configuration.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reduce Waiting Ambiguity&lt;/strong&gt; — If the system must be slow, it should not be silent.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Creation vs. Editing
&lt;/h2&gt;

&lt;p&gt;There’s no toggle between “create” and “edit” in the UI. Instead, the orchestrator inspects the request—and the presence (or absence) of an existing PRD—to decide whether it should synthesize an entire document or focus on specific sections. That inference is handled by the same subagents we’ve already seen: the clarification analyzer checks if the agent has enough information to write anything, and the section-detection analyzer decides which slices of the artifact need attention.&lt;/p&gt;

&lt;p&gt;Confidence signals from section detection are surfaced to help users decide when to intervene.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Detected Workflow&lt;/th&gt;
&lt;th&gt;System Behavior&lt;/th&gt;
&lt;th&gt;UX Goal&lt;/th&gt;
&lt;th&gt;Typical UX Affordances&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Full PRD generation&lt;/td&gt;
&lt;td&gt;Multi-step synthesis across every section&lt;/td&gt;
&lt;td&gt;Transparency&lt;/td&gt;
&lt;td&gt;Clarification loop (up to three passes), context preview, streaming timeline, cost meter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Targeted update&lt;/td&gt;
&lt;td&gt;Regenerate only the sections flagged by the analyzer&lt;/td&gt;
&lt;td&gt;Precision&lt;/td&gt;
&lt;td&gt;Section highlights, diff view, rollback controls, warnings when edits ripple into adjacent sections&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  How the Orchestrator Makes the Call
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Clarification acts as a gatekeeper:&lt;/strong&gt; When no prior PRD exists, the orchestrator will loop with the clarifier (up to three times) to gather personas, goals, and constraints before any section writers run. If the user supplies an existing PRD, the clarifier usually stands down because the grounding context is already available.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Section detection scopes the work:&lt;/strong&gt; The &lt;code&gt;section-detection-analyzer&lt;/code&gt; infers intent (“update the LATAM personas”) and hands the orchestrator a targeted section list. Only those section writers get invoked unless the analyzer indicates the request touches multiple areas.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shared analysis keeps context in sync:&lt;/strong&gt; Both scenarios reuse cached analyzer outputs whenever possible. A targeted update will draw from the existing analysis bundle and current PRD text instead of regenerating everything from scratch.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audit logs reflect the path taken:&lt;/strong&gt; When the orchestrator opts for full generation, the audit trail captures every section output and the clarifier’s reasoning. For targeted updates it records before/after diffs, confidence scores, and the sections that actually changed—mirroring what the UI presents.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Edition parity and fallbacks:&lt;/strong&gt; Heuristics prevent silent no-op edits and keep top-level PRD fields consistent during partial updates.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So while users don’t flip between modes, the system has a working theory about which workflow they expect. Making that inference explicit—and surfacing it through the UX affordances—has reduced surprises when moving between drafting and maintenance tasks.&lt;/p&gt;




&lt;h2&gt;
  
  
  Working Hypotheses
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Context is a user-facing product surface.&lt;/strong&gt; Expose it.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Streaming is not cosmetic.&lt;/strong&gt; It is trust-preserving UX for “thinking systems.”
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agent-driven interactive UI and structured outputs outperform walls of text.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Creation and editing require different mental models.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UX and agent orchestration must co-evolve.&lt;/strong&gt; One cannot be downstream of the other.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;This exploration began with a practical frustration described in the introduction: using general-purpose agents like ChatGPT to create and maintain complex documents (like PRDs) required repeating prompts, managing context by hand, and working through long, opaque generation cycles. The core friction wasn’t just in the model, but in the &lt;em&gt;UX around the workflow&lt;/em&gt; — hidden state, unclear progress, and outputs that were difficult to iterate on.&lt;/p&gt;

&lt;p&gt;Building a domain-specific PRD agent became a way to investigate whether orchestration patterns, context design, and UX choices could reduce that friction. The current version now includes structured outputs, context controls, streaming transparency, and targeted editing — enough functionality that, for this specific use case, it feels like a more effective alternative to a general-purpose chat interface.&lt;/p&gt;

&lt;p&gt;The project is still evolving, but the journey so far suggests that &lt;strong&gt;UX and architecture designed together—from the first iteration—can meaningfully improve how people collaborate with AI on complex, evolving artifacts&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The next steps will focus on validating these ideas with real users, refining orchestration stability, and exploring new mechanisms for consistency and context evolution. While this implementation centers on PRDs, the underlying principles—legibility, localized change, and user-visible cognition—apply broadly to agentic systems and AI-powered products that coordinate multi-step work.&lt;/p&gt;

&lt;p&gt;If you find this useful or want to explore the code, star or contribute to the open-source project on&lt;a href="https://github.com/eabait/product-agents" rel="noopener noreferrer"&gt;https://github.com/eabait/product-agents&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Anthropic, &lt;em&gt;“Building Effective Agents.”&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Anthropic, &lt;em&gt;“Effective Context Engineering for AI Agents.”&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Dan Breunig, &lt;em&gt;“How Contexts Fail (and How to Fix Them).”&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Dan Breunig, &lt;em&gt;“How to Fix Your Context.”&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Luke Wroblewski, &lt;em&gt;“Common AI Product Issues.”&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Luke Wroblewski, &lt;em&gt;“Context Management UI in AI Products.”&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Jakob Nielsen, &lt;em&gt;“Slow AI.”&lt;/em&gt;
&lt;/li&gt;
&lt;/ol&gt;




</description>
      <category>ai</category>
      <category>agents</category>
      <category>ux</category>
      <category>architecture</category>
    </item>
  </channel>
</rss>
