<?xml version="1.0" encoding="UTF-8"?>


<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://www.julianwyngaard.com/tags/agentic-workflows/feed.xml</id>
    <title>Loosely Coupled Thoughts &#x2014; tagged agentic-workflows</title>
    <subtitle>A blog about software engineering, AI, and development.</subtitle>
    <link rel="self" type="application/atom+xml" href="https://www.julianwyngaard.com/tags/agentic-workflows/feed.xml"/>
    <link rel="alternate" type="text/html" href="https://www.julianwyngaard.com/tags/agentic-workflows"/>
    <updated>2026-06-11T19:56:22.569965+12:00</updated>
    <author>
        <name>Julian Wyngaard</name>
    </author>
    <entry>
        <id>urn:uuid:019e9e94-c2b1-76fa-83dc-cca1667e16c5</id>
        <title>Implementing a Full-Stack Feature Using Claude Code&apos;s Dynamic Workflows</title>
        <link rel="alternate" type="text/html" href="https://www.julianwyngaard.com/2026/06/07/implementing-a-full-stack-feature-using-claude-code-s-dynamic-workflows"/>
        <published>2026-06-07T11:52:52.865346+12:00</published>
        <updated>2026-06-11T19:56:22.569965+12:00</updated>
        <category term="ai" label="ai"/>
        <category term="engineering-with-ai" label="engineering-with-ai"/>
        <category term="anthropic" label="anthropic"/>
        <category term="harness-engineering" label="harness-engineering"/>
        <category term="software-factory" label="software-factory"/>
        <category term="claude-design" label="claude-design"/>
        <category term="claude-code" label="claude-code"/>
        <category term="dynamic-workflows" label="dynamic-workflows"/>
        <category term="agentic-workflows" label="agentic-workflows"/>
        <category term="generative-ai" label="generative-ai"/>
        <content type="html">&lt;p&gt;This is a continuation from the post I wrote recently titled &lt;a href=&quot;https://www.julianwyngaard.com/2026/05/31/designing-a-feature-with-claude-design-then-handing-it-to-claude-code/&quot;&gt;Designing a Feature with Claude Design &#x2013; Then Handing It to Claude Code&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In that post, I stepped through how I used &lt;a href=&quot;https://www.anthropic.com/news/claude-design-anthropic-labs&quot;&gt;Claude Design&lt;/a&gt; to create a UX design as well as a set of initial requirements for new &lt;em&gt;tag selection and suggestion&lt;/em&gt; functionality in my blog&apos;s custom CMS.&lt;/p&gt;
&lt;p&gt;This post steps through using those artefacts to drive the actual implementation in the frontend and backend apps. Specifically the goal here is to build this end-to-end using Claude Code&apos;s new &lt;a href=&quot;https://claude.com/blog/introducing-dynamic-workflows-in-claude-code&quot;&gt;Dynamic Workflows&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The outputs of the Claude Design exercise were a fully functional interactive prototype of the design and a &lt;a href=&quot;https://gist.github.com/julianwyngaard/4b71109292c41956a0f9bb90c6830c9d&quot;&gt;markdown file&lt;/a&gt; with a set of requirements and acceptance criteria.&lt;/p&gt;
&lt;p&gt;I already have a structured process for defining per-feature design specs, requirements and implementation plans in the projects repo. It consists of several things, but most relevant here is a folder structure and set of markdown files which I would consider the &quot;spec&quot; as part of the planning phase of this AI-driven engineering workflow. These are used as context for the implementation and verification, which often run across several separate sessions.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.julianwyngaard.com/aa49a80d-4bdb-483b-89b8-3b060fa29699.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Usually when starting a feature I would be starting from scratch, or just a high-level set of requirements from the initial blog design and feature roadmap. For this piece of work, Claude Design gave me a working prototype that was already using my frontend style guide and a detailed set of requirements, which I put into the code base for the duration of the build. So I had a solid starting point. However, those didn&apos;t fit into my structured process that I already have in place, and I still needed a design spec for the full end-to-end solution.&lt;/p&gt;
&lt;p&gt;For larger pieces of work I like to use Jesse Vincent&apos;s &lt;a href=&quot;https://github.com/obra/superpowers&quot;&gt;superpowers&lt;/a&gt; plugin. He has done a fantastic job of baking in real software development methodologies and workflows into a set of agent skills that drastically increase the quality and coherence of what&apos;s being built.&lt;/p&gt;
&lt;p&gt;The first two skills I normally reach for are the &lt;code&gt;brainstorming&lt;/code&gt; skill, which is for creating a design spec and the &lt;code&gt;writing-plans&lt;/code&gt; skill, which is for writing an implementation plan for the spec. The design spec is the most important part. For any given feature this is where I spend most of my time. The clearer this is defined upfront, the more seamless the rest of the process will be and the higher the chance of it building what I actually want.&lt;/p&gt;
&lt;p&gt;Once I&apos;m happy with the design spec and implementation plan, after rounds of refinement, I would then hand it off to Claude Code to start building, usually with subagent development or agent teams.&lt;/p&gt;
&lt;p&gt;I already found a general workflow that I follow when building software with AI. In its most simple form it&apos;s the Plan-Generate-Evaluate methodology. But that&apos;s a gross oversimplification of the entire underlying process. In fact, for each of the Plan-Generate-Evaluate phases I will run inner Evaluate-Regenerate flows, iterating over this at different phases until outputs are where they need to be. The first outputs are rarely good enough.&lt;/p&gt;
&lt;p&gt;For example, when in the planning phase, for the design spec planning I will start with some initial context and then have a back and forth conversation with Claude to flesh out the requirements, acceptance criteria and architecture. Once it generates the initial design spec I then go through usually multiple rounds of adversarial evaluation and refinement of the spec until it&apos;s at a place that I am happy with. When I do the implementation plan I do the exact same thing, and then during the build I will do the same thing again. The build often gets broken down into separate chunks of work, usually to reduce the size of PRs and because Claude&apos;s context will start to fill up, at which point the generated outputs can start to deteriorate in quality and things can go off-piste. So, for each build phase I will go through rounds of Generate-Evaluate loops.&lt;/p&gt;
&lt;p&gt;This has worked well for me so far, in the sense that I can effectively build substantially sized chunks of work without writing a single line of code myself, and at a quality level that meets my own pedantic standards.&lt;/p&gt;
&lt;p&gt;However, it can be incredibly time-consuming and painfully arduous. It&apos;s making full use of AI to generate the design spec and implementation plan, do the build and then do the evaluation and verifications, all with their own inner loops of Generate-Evaluate.&lt;/p&gt;
&lt;p&gt;Some might say this is over the top, and it can take a lot of time to go through this for any given piece of work. But so far this is the level of coercing, so to speak, that I have found to be necessary to achieve high quality outputs, especially those suitable for production-grade software. Anyone can ship some code fast; not everyone can do it well too.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;But it&apos;s been me manually driving this workflow&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;This is where I took a different route than usual&lt;/strong&gt;&lt;/em&gt; as &lt;a href=&quot;https://www.anthropic.com/news/claude-opus-4-8&quot;&gt;Opus 4.8&lt;/a&gt; had just been released and along with that their new &lt;a href=&quot;https://claude.com/blog/introducing-dynamic-workflows-in-claude-code&quot;&gt;Dynamic Workflows&lt;/a&gt; capability, which I was super keen to understand and try out.&lt;/p&gt;
&lt;p&gt;Here is how Thariq Shihipar and Sid Bidasaria from Anthropic &lt;a href=&quot;https://claude.com/blog/a-harness-for-every-task-dynamic-workflows-in-claude-code&quot;&gt;describe&lt;/a&gt; Dynamic Workflows:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;While the default Claude Code harness is built for coding, it is also useful for many other types of tasks because, as it turns out, many tasks resemble coding tasks. But there are certain classes of tasks where we have had to build custom harnesses on top of Claude Code to achieve peak performance such as &lt;a href=&quot;https://support.claude.com/en/articles/11088861-using-research-on-claude&quot;&gt;Research&lt;/a&gt;, &lt;a href=&quot;https://support.claude.com/en/articles/11932705-automated-security-reviews-in-claude-code&quot;&gt;security analysis&lt;/a&gt;, &lt;a href=&quot;https://code.claude.com/docs/en/agent-teams&quot;&gt;agent teams&lt;/a&gt;, or &lt;a href=&quot;https://code.claude.com/docs/en/code-review&quot;&gt;Code Review&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Workflows allow you to dynamically create harnesses built on top of Claude Code that enable Claude to solve all of those problems more natively. You can also share and reuse these workflows with others.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And this is where I wanted to see what the new Dynamic Workflows could take off of my hands.&lt;/p&gt;
&lt;h1&gt;Creating and Using a Workflow&lt;/h1&gt;
&lt;p&gt;A while ago Anthropic published &lt;a href=&quot;https://www.anthropic.com/research/building-effective-agents&quot;&gt;Building effective agents&lt;/a&gt;. In that they talk about what agents are, and more relevant here, what workflows are, which they define as follows:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Workflows&lt;/strong&gt; are systems where LLMs and tools are orchestrated through predefined code paths.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And the &lt;a href=&quot;https://code.claude.com/docs/en/agent-sdk/overview&quot;&gt;Claude Agent SDK&lt;/a&gt; can be used to create these workflows in code.&lt;/p&gt;
&lt;p&gt;Dynamic Workflows is the combination of these two built natively into Claude Code, with Claude being able to intelligently create these based on the task at hand. You can create them using natural language to describe a workflow, or use the new &lt;code&gt;ultracode&lt;/code&gt; effort level (which is actually effort level &lt;code&gt;xhigh&lt;/code&gt; plus instructing it to use workflows).&lt;/p&gt;
&lt;p&gt;Nice touch on the pixelated visuals when selecting &lt;code&gt;ultracode&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.julianwyngaard.com/3f3d02d2-513b-40aa-854f-369d6564d734.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Since I have a relatively pre-defined workflow, I used natural language to describe to Claude how I normally work.&lt;/p&gt;
&lt;p&gt;What I wanted to see was whether Claude could do everything &lt;strong&gt;after the design spec&lt;/strong&gt; in this workflow. So the &lt;strong&gt;implementation planning&lt;/strong&gt;, &lt;strong&gt;the build&lt;/strong&gt; (or builds), and &lt;strong&gt;self-evaluation&lt;/strong&gt;. And for each of those, also run inner loops of Generate-Evaluate and refinement. Get it to the point of fully completed and verified, leaving me to do final review.&lt;/p&gt;
&lt;p&gt;Essentially I want to hand my design spec to Claude, have it build it to a high level of quality and then create a PR for me to review. 100% hands-off the code for the entire process.&lt;/p&gt;
&lt;p&gt;The first question I had was: would Claude even be able to recreate my normal workflow? It&apos;s quite involved. Secondly, where I am normally involved in all the inner loops, making human judgement calls and steering things in a direction that I want, can Claude do this all on its own? And lastly &#x2013; most critically &#x2013; can it actually produce a good result?&lt;/p&gt;
&lt;p&gt;Well, I&apos;ll be damned. It did all of that. And it felt like a moment of reckoning.&lt;/p&gt;
&lt;p&gt;I had a relatively large prompt, explaining in detail the end-to-end process I normally go through. Pointed it to my design spec and requirements and asked it to create a workflow.&lt;/p&gt;
&lt;p&gt;It then asked me whether it should just run the workflow or save it to disk for me to run it later. I got it to save it and then kick it off.&lt;/p&gt;
&lt;p&gt;Here&apos;s what that looked like:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.julianwyngaard.com/5f5972a8-5c4b-48ed-8771-bf46c7671175.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;As you can see it incorporated the implementation planning in the &quot;Preflight &amp;amp; Plan&quot; phase with self-evaluation and refinement in the &quot;Plan Review&quot; phase. Excellent, this is usually painful and one part I&apos;m not too concerned about.&lt;/p&gt;
&lt;p&gt;This may sound alarming, not being concerned about the implementation plan. However my prompts already guide a plan in a certain direction, and I have a ton of things in the repo that tell Claude what style, architecture, structure, patterns, quality checks etc. I use in this repo. It has deterministic guardrails in place that Claude can&apos;t cheat on. Along with that there is a ton of already implemented code that follows the patterns I set in place. LLMs are really good at following style and patterns, good or bad! With the design spec and plan, and the surrounding context and environment, my confidence has grown that what will be implemented is in line with what I expect, and that gets verified by me at review time. If something is off, I take a close look to see where in my setup needs tweaking and feed that back into the harness, or if I underspecified something somewhere it gets updated. If things went totally sideways, my work gets done in an isolated git worktree and branch, and the reimplementation cost is very low, if it came to that.&lt;/p&gt;
&lt;p&gt;The workflow broke the work down into three tracks of work: backend, frontend and then integrating those two tracks together. Claude decided this part of the workflow. In each track it ran the inner loops, not just for the track, but also for &lt;strong&gt;particular tasks&lt;/strong&gt; in the track. This was following good engineering practice: breaking the work down into smaller chunks, using red-green TDD, building and then doing evaluation and refinement. &lt;strong&gt;All per task, per track of work&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Along with this, when I described the workflow I also instructed it to ensure that all acceptance criteria must be verified, with component testing (end-to-end against a locally running service) and testing the functionality in a browser against the running application. It did all of that. This is an area that is critically important to ensuring high quality, and the one that I see as one of the most valuable aspects to addressing the &lt;a href=&quot;https://www.julianwyngaard.com/2026/04/24/human-review-is-the-bottleneck/&quot;&gt;human review bottleneck&lt;/a&gt; dilemma that is a limiting factor for the potential productivity gains from AI-first software engineering to flow through to organisational productivity and efficiency.&lt;/p&gt;
&lt;p&gt;After the build was complete, it did a final comprehensive &quot;Final review&quot; phase, which is what I normally do from multiple angles myself: implementation to spec alignment, code quality, security, etc. Anything it found there, it sent back to build to apply fixes and then re-ran the final review.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;60 agents, 5.2m tokens, ~3.9 hours&lt;/strong&gt; later (3 of which while I was sleeping), giving me a final report below:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.julianwyngaard.com/a643263b-adea-45d5-9d8f-7dedac16e606.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Four hours is a long time, relatively speaking. But it&apos;s time that can be spent doing other things while Claude cooks. Building other things, sleeping, or going outside to touch grass. I didn&apos;t spend any time manually driving this workflow, so that was time saved and a not-so-enjoyable aspect removed from the process. Importantly, instead of me driving the reviewing and refining on the inner loops and becoming fatigued by this, I can focus my energy on scrutinising the final outcome, as well as feeding back any process improvements back into the harness and workflow.&lt;/p&gt;
&lt;p&gt;It ran successfully, barring being able to test the AI tag suggestions due to an invalid token. My first test after fixing the API token, it worked perfectly.&lt;/p&gt;
&lt;p&gt;For more visual context, this is how the workflow was structured to work its way through the various phases all the way through to completion, with some stats reported at the bottom.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.julianwyngaard.com/8bc2b528-b685-44ab-9e86-f56f855fb28e.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;So it worked, and it sure looked good based on the rigorous process it went through &#x2013; a close approximation of what I drive manually. I was genuinely impressed by how much of my process it was able to autonomously do, and while I was sleeping!&lt;/p&gt;
&lt;p&gt;But being the first time I have run this workflow, and not being in the loop to apply my human judgement, the next step was to scrutinise everything myself. Firstly, does it actually work? Yes, and damn it looks and feels good in the UI too. Was the code that it generated good quality and in line with what&apos;s expected in this code base? It was very much, and Opus 4.8 seems to go the extra mile and pick up and address some things as it goes, like a good engineer continuously improving as it stumbled upon things. Like tidying up a log line or updating affected docs, or noticing and calling out some preexisting bug. All the quality checks look good.&lt;/p&gt;
&lt;p&gt;You may have seen that the very last phase was called Decision Log and Report. Because I was out of the loop and these workflows can&apos;t stop to ask for direction, I asked Claude to keep a record of all decisions the agents had to make along the way, like if it had to deviate from the design spec or plan. This happens and it&apos;s important to know about them in case it&apos;s something that needs to be adjusted. The majority of this was noise in this run, but I can see this proving valuable as in my manual process Claude often stops to ask me how to proceed, where in a workflow it can&apos;t do that.&lt;/p&gt;
&lt;p&gt;The left side is the working prototype from the Claude Design exercise; the right side is the final implementation.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.julianwyngaard.com/016e52e3-59b2-4de8-a55e-7bd3600fae0b.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;I also decided to run my own final verifications using my regular multi-angle review prompts. Normally when I run these after going through my usual manual process it will find some critical and high issues, which I evaluate and make a judgement call on. I was very surprised that it only found some medium and low-severity issues. Most of the time these are just noise or stylistic things. So there were a few minor things that I asked it to tidy up post-implementation, including a UI element overflowing into another. But I would say it got about 95% of the way there across the entire full-stack feature. I was not expecting this.&lt;/p&gt;
&lt;p&gt;I have since run these workflows a few times, experimenting first on my personal projects, but have now also used them in a professional team environment and so far it has worked remarkably well.&lt;/p&gt;
&lt;p&gt;My takeaway here is that these are incredibly powerful and flexible, and I think these kinds of workflows are exactly what is needed to get to fully automated, hands-off software delivery. Whether they are Claude&apos;s Dynamic Workflows, Codex or some other tool. The methodology and approach is what is important, Claude just seems to have really nailed making these workflows easy to use and available to anyone.&lt;/p&gt;
&lt;p&gt;The quality of what these workflows can deliver is going to be highly dependent on the quality of the environment and harness that it&apos;s operating in. And I am skeptical that all my workflow runs will go this well on first pass. Workflows alone are not some magical silver bullet that will just start creating production-grade software. I have put considerable effort into my setup for this project (albeit more can be done). I would attribute this as the primary factor for this workflow being able to successfully one-shot build an entire full-stack feature to a high level of quality just from a well-defined design spec. Drop the same workflow into a sparse or legacy code base with weak conventions, lack of system context, insufficient tests and deterministic checks, and I&apos;d expect a very different result.&lt;/p&gt;
&lt;p&gt;The workflow isn&apos;t the moat; the environment is.&lt;/p&gt;
&lt;p&gt;I have only used these workflows a handful of times and the complexity of the task at hand may result in varying results. But from what I have seen so far, I&apos;m cautiously optimistic. And it&apos;s most welcome because implementing a workflow like this manually, often with multiple separate features on the go, can be incredibly time-consuming and draining. Workflows carry a lot of the weight and let you get on with the fun part, building.&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>urn:uuid:019e9f57-1151-7163-b15d-04571ab5adca</id>
        <title>Maintainability sensors for coding agents</title>
        <link rel="alternate" type="text/html" href="https://www.julianwyngaard.com/2026/06/06/maintainability-sensors-for-coding-agents"/>
        <published>2026-06-06T10:31:00+12:00</published>
        <updated>2026-06-07T11:51:32.940013+12:00</updated>
        <category term="ai" label="ai"/>
        <category term="engineering-with-ai" label="engineering-with-ai"/>
        <category term="harness-engineering" label="harness-engineering"/>
        <category term="agentic-workflows" label="agentic-workflows"/>
        <category term="maintainability-sensors" label="maintainability-sensors"/>
        <category term="software-maintainability" label="software-maintainability"/>
        <category term="mutation-testing" label="mutation-testing"/>
        <category term="static-analysis" label="static-analysis"/>
        <category term="generative-ai" label="generative-ai"/>
        <category term="martinfowler" label="martinfowler"/>
        <category term="birgitta-bockeler" label="birgitta-bockeler"/>
        <content type="html">&lt;p&gt;&lt;a href=&quot;https://martinfowler.com/articles/sensors-for-coding-agents.html&quot;&gt;Maintainability sensors for coding agents&lt;/a&gt;&lt;/p&gt;&lt;p&gt;This is a great post from Birgitta B&#xf6;ckeler on &lt;a href=&quot;https://www.julianwyngaard.com/2026/06/06/maintainability-sensors-for-coding-agents&quot;&gt;martinfowler.com&lt;/a&gt; talking about the sensors that can be used with generative AI engineering to shift quality assurance left of the delivery pipeline.&lt;/p&gt;
&lt;p&gt;One big part of this is the general state of the codebase and repository, even before adding in sensors. I like the definition used to describe this: internal quality.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;There are multiple dimensions we usually want to achieve and monitor in our codebases: Functional correctness (works as intended), architectural fitness (is fast/secure/usable enough), and maintainability. I define maintainability here as making it easy and low risk to change the codebase over time - also known as &#x201c;internal quality&#x201d;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And why this is important for engineering with AI.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Internal quality problems affect AI agents in similar ways that they affect human developers. An agent working in a tangled codebase might look in the wrong place for an existing implementation, create inconsistencies because it has not noticed a duplicate, or be forced to load more context than a task should require.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I have heard developers say their agents go off track easily and implement things with mixed styles. There are likely a few reasons for this happening, but this internal quality is probably the top of the list.&lt;/p&gt;
&lt;p&gt;She talks about a number of different approaches to implementing these sensors, both computational and inferential: linting (standard and custom), static code analysis to control cross-dependencies, coupling data and modularity patterns, and test suites as a regression sensor.&lt;/p&gt;
&lt;p&gt;There are a lot of good things in there, but the section on test suites I found to be valuable. LLMs love to write tests and they can be highly verbose, testing things that are not important while totally skipping things that are critical. Or worse, fixing failing tests by making them pass against broken or buggy code. Like most other things with generative AI, these things can be steered to create genuinely meaningful tests that the LLM can largely manage with light oversight. I&apos;m a huge fan of end-to-end tests, or a subset of those, component-testing that runs locally against running services, with local or mocked dependencies. These allow for greater control of different scenarios - edge cases, acceptance criteria and user scenarios - that would likely result in heavier, slow running and flaky tests if running in a deployed environment.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;There currently seems to be a trend towards more end-to-end style acceptance tests. As mentioned in the beginning, AI has gotten really good at generating tests, so it has become quite normal for developers to just let AI generate lots of tests, without much review. Reviewing unit tests in particular can be very tedious. I&apos;m not saying it&apos;s a good thing not to look at them at all &#x2014; but I acknowledge the reality that it is unrealistic to think that human review of all tests is sustainable, and it&apos;s unrealistic to think that people will actually do it. So while we search for the appropriate testing pyramid/ice cream cone/muffin shape of the AI coding future, techniques like &lt;a href=&quot;https://matteo.vaccari.name/posts/acceptance-tests-for-ai-assisted-development/&quot;&gt;approved scenarios&lt;/a&gt; are becoming popular. As demonstrated above, acceptance tests increase coverage, but are often not very assertion-heavy, giving us a false sense of security in test effectiveness &#x2014; mutation testing helps us monitor that gap.&lt;/p&gt;
&lt;/blockquote&gt;</content>
    </entry>
</feed>
