<?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>DEV Community: Motty Chen</title>
    <description>The latest articles on DEV Community by Motty Chen (@mottych).</description>
    <link>https://dev.to/mottych</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1157913%2Ffed9a4d5-768a-4dd8-be3a-1dc98330abaa.jpeg</url>
      <title>DEV Community: Motty Chen</title>
      <link>https://dev.to/mottych</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mottych"/>
    <language>en</language>
    <item>
      <title>AI writes the code fast. The expensive question is what happens after something fails</title>
      <dc:creator>Motty Chen</dc:creator>
      <pubDate>Wed, 21 Oct 2026 02:30:42 +0000</pubDate>
      <link>https://dev.to/mottych/ai-writes-the-code-fast-the-expensive-question-is-what-happens-after-something-fails-5167</link>
      <guid>https://dev.to/mottych/ai-writes-the-code-fast-the-expensive-question-is-what-happens-after-something-fails-5167</guid>
      <description>&lt;p&gt;AI coding agents can implement a change ridiculously fast.&lt;/p&gt;

&lt;p&gt;That's cool.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;But the party is not over yet.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In my own IssueFlow workflow, implementation is only one stop. A normal production path can still include validation, security review, code review, UI/UX review, documentation, merge, merge validation, E2E against the deployed code, and cleanup.&lt;/p&gt;

&lt;p&gt;And before implementation, there may already have been design, design review, and a human design approval.&lt;/p&gt;

&lt;p&gt;This was not imposed on me. I built it this way on purpose. Fast code is nice. Code that is actually what I meant, fits the architecture, follows the standards, survives the real product, deploys correctly, follow my crazy quality requirements, and does not create the next fire is nicer.&lt;/p&gt;

&lt;p&gt;The problem is what happens when one of those stages turns red.&lt;/p&gt;

&lt;h2&gt;
  
  
  “It failed” is not enough information
&lt;/h2&gt;

&lt;p&gt;Take merge.&lt;br&gt;
Thee are millions (almost) reason it can fail:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A merge can fail because there is a real conflict.&lt;/li&gt;
&lt;li&gt;It can fail because CI is red.&lt;/li&gt;
&lt;li&gt;It can fail because a required check never ran.&lt;/li&gt;
&lt;li&gt;It can fail because GitHub is rate limiting us, a runner is having a bad day, or the infrastructure is unavailable.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those are very different problems.&lt;/p&gt;

&lt;p&gt;IssueFlow already had a failure-reason vocabulary before this week. That lets me say things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;merge conflict&lt;/strong&gt; → resolve the conflict (back to implementation)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;real validation failure&lt;/strong&gt; → rework the code (back to implementation)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;checks timeout&lt;/strong&gt; → retry the merge&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;infrastructure fault&lt;/strong&gt; → wait/retry instead of rewriting code&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;design no longer fits&lt;/strong&gt; → go back to design.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That part is useful, but it is not the change I am excited about.&lt;/p&gt;

&lt;p&gt;The harder question comes &lt;strong&gt;after recovery&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The harder question comes after recovery
&lt;/h2&gt;

&lt;p&gt;Suppose a merge conflict sends the issue to implementation for conflict resolution.&lt;/p&gt;

&lt;p&gt;Great. The conflict is fixed.&lt;/p&gt;

&lt;p&gt;Now what?&lt;/p&gt;

&lt;p&gt;Do I send it through validation again?&lt;br&gt;
Security review?&lt;br&gt;
Code review?&lt;br&gt;
UI/UX review?&lt;br&gt;
Every single stage?&lt;/p&gt;

&lt;p&gt;Well, sometimes the answer is yes. &lt;/p&gt;

&lt;p&gt;But! Sometimes that is just burning time and tokens to prove something we already know. And that is where it hits my sleep time and my pocket.&lt;/p&gt;

&lt;p&gt;The same thing happens with a security finding.&lt;/p&gt;

&lt;p&gt;Imagine security review says a dependency needs to be updated. The agent updates the library.&lt;/p&gt;

&lt;p&gt;Do I need to re-check product intent?&lt;br&gt;
Probably not if the product behavior did not change.&lt;/p&gt;

&lt;p&gt;Do I need security and affected tests again?&lt;br&gt;
&lt;strong&gt;Absolutely.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Or maybe the rework touched only test code. Does that invalidate the UI review that already passed? Maybe not.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;A failure reason tells me why the stage stopped. It does not necessarily tell me which parts of the remaining workflow still add evidence.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy22l98ohgo247lrsa3r2.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy22l98ohgo247lrsa3r2.png" alt="Comparison between static recovery, which replays implementation, validation, security review, code review, UI review and merge after a merge conflict, and evidence-aware recovery, which resolves the conflict and returns directly to merge." width="800" height="594"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Static workflows know a lot at the beginning
&lt;/h2&gt;

&lt;p&gt;When an issue enters IssueFlow, the workflow can route based on things like complexity, issue type, environment, priority, role, and other dimensions.&lt;/p&gt;

&lt;p&gt;That is already useful.&lt;/p&gt;

&lt;p&gt;A chore does not need the same path as a large feature. An epic child does not need the same entry path as a standalone issue. A production lane can demand more validation than another lane and deployment is different.&lt;/p&gt;

&lt;p&gt;But software has an annoying habit of teaching us things &lt;strong&gt;after&lt;/strong&gt; we start. I know this problem since the 90's...&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Implementation may discover that the approved design no longer fits the current codebase.&lt;/li&gt;
&lt;li&gt;A backend-looking change may turn out to affect the UI.&lt;/li&gt;
&lt;li&gt;A security fix may change only a dependency.&lt;/li&gt;
&lt;li&gt;A rework pass may touch only tests.&lt;/li&gt;
&lt;li&gt;A merge problem may turn out to be nothing more than GitHub having a bad afternoon.&lt;/li&gt;
&lt;li&gt;Or an issue may simply have gone stale because the product moved on.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those facts do not exist when the issue first enters the workflow.&lt;br&gt;
But the agent that just handled that stage - knows!&lt;/p&gt;

&lt;h2&gt;
  
  
  Let the workflow learn while it runs
&lt;/h2&gt;

&lt;p&gt;I recently added a mechanism to IssueFlow that lets a stage set or change a routing dimension while the issue is already running.&lt;br&gt;
That new dimension becomes part of the routing state for the issue.&lt;/p&gt;

&lt;p&gt;Later routing decisions can use it.&lt;/p&gt;

&lt;p&gt;That sounds like a small detail, but it changes how I think about recovery.&lt;/p&gt;

&lt;p&gt;The stage is not inventing a new workflow. The allowed dimensions, values, routes, and stages are still defined by the workflow owner.&lt;/p&gt;

&lt;p&gt;The difference is that the workflow can now update its understanding of the work when new evidence appears.&lt;br&gt;
So the system can distinguish between:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why did this stage fail?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;and:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What did we learn that should change what happens next?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That second question can shorten the route.&lt;br&gt;
It can also make the route stronger.&lt;/p&gt;

&lt;p&gt;If implementation discovers unexpected UI impact, I may want to &lt;em&gt;add&lt;/em&gt; a UI/UX review that was not previously relevant.&lt;/p&gt;

&lt;p&gt;If the design has gone stale, I may want to go all the way back to design and approval.&lt;/p&gt;

&lt;p&gt;If a dependency was updated after a security finding, I may want security and affected validation again, but not product-intent review.&lt;/p&gt;

&lt;p&gt;The goal is not “skip more stages.”&lt;/p&gt;

&lt;p&gt;The goal is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Run the stages that still add evidence.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9dhgc0kevnzgb8iaeqib.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9dhgc0kevnzgb8iaeqib.png" alt="Examples of new evidence changing routing: stale design routes to redesign, UI impact adds UI review, test-only changes repeat relevant validation, dependency updates repeat security checks, infrastructure failures retry, superseded work becomes not needed, and product ambiguity brings in a developer." width="800" height="594"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Sometimes the correct route is no route at all
&lt;/h2&gt;

&lt;p&gt;There is another case I run into more often than I expected: the issue should not continue at all!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An issue can become stale.&lt;/li&gt;
&lt;li&gt;Another change may already have solved it.&lt;/li&gt;
&lt;li&gt;The original requirement may no longer fit the product.&lt;/li&gt;
&lt;li&gt;Or it may turn out to be outside the scope of what this workflow should do.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is why IssueFlow has &lt;strong&gt;NOT_NEEDED&lt;/strong&gt; as a first-class outcome in addition to PASSED and FAILED.&lt;/p&gt;

&lt;p&gt;A NOT_NEEDED result can carry reasons such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;superseded&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;obsolete&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;already done&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;out of scope&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That matters because “failed” means the intended work still needs to happen but something stopped us.&lt;/p&gt;

&lt;p&gt;“Not needed” means continuing the work may itself be the mistake.&lt;/p&gt;

&lt;p&gt;Sending a superseded issue back through implementation is not recovery.&lt;br&gt;
It is just a very sophisticated way to waste money.&lt;/p&gt;

&lt;h2&gt;
  
  
  This is mostly an efficiency problem for me
&lt;/h2&gt;

&lt;p&gt;I am building all of this because the economics started bothering me.&lt;/p&gt;

&lt;p&gt;The code itself can be produced very fast.&lt;/p&gt;

&lt;p&gt;Then I watch the rest of the machine spend time validating, reviewing, retrying, waiting, rebuilding context, and occasionally asking me questions where my contribution is approximately &lt;strong&gt;zilch&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;At one point my rough mental split felt close to 50/50: creative implementation effort on one side, validation/recovery/administration on the other.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;That is not a benchmark. I am now measuring it properly.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;But it was enough to make me ask whether the workflow was doing too much work simply because that was the path it had always taken.&lt;/p&gt;

&lt;p&gt;And yes, there is a token bill attached to that.&lt;/p&gt;

&lt;p&gt;Some days I look at the wasted retries and think I could probably buy another computer if I could just get back the money spent proving the first computer did not need to do anything.&lt;/p&gt;

&lt;h2&gt;
  
  
  Human attention is part of the routing problem too
&lt;/h2&gt;

&lt;p&gt;I like building software.&lt;/p&gt;

&lt;p&gt;I do not particularly enjoy babysitting a merge job because GitHub decided this was a good moment to have a bad day.&lt;/p&gt;

&lt;p&gt;And, given the choice, I would rather spend that time with my wife.&lt;/p&gt;

&lt;p&gt;That does &lt;strong&gt;not&lt;/strong&gt; mean I want humans removed from the process.&lt;/p&gt;

&lt;p&gt;Quite the opposite.&lt;/p&gt;

&lt;p&gt;I want the developer involved when the developer has something valuable to add.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bring me in when:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the design no longer makes sense&lt;/li&gt;
&lt;li&gt;product intent is ambiguous&lt;/li&gt;
&lt;li&gt;a security trade-off needs judgment&lt;/li&gt;
&lt;li&gt;the UI behavior is questionable&lt;/li&gt;
&lt;li&gt;a risk decision needs an owner&lt;/li&gt;
&lt;li&gt;or the issue may no longer be worth doing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Please leave me alone when:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the runner needs a retry&lt;/li&gt;
&lt;li&gt;GitHub is rate limiting us&lt;/li&gt;
&lt;li&gt;a known recovery pattern has already been codified&lt;/li&gt;
&lt;li&gt;or the system already has enough evidence to choose the next safe step.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The ideal path is not zero human involvement.&lt;/p&gt;

&lt;p&gt;It is &lt;strong&gt;human involvement exactly where judgment changes the outcome&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I want to measure next
&lt;/h2&gt;

&lt;p&gt;The dynamic-routing mechanism is shipped.&lt;br&gt;
The efficiency improvement is still a hypothesis.&lt;/p&gt;

&lt;p&gt;I want to measure whether it actually reduces:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;repeated stages after narrow rework;&lt;/li&gt;
&lt;li&gt;total agent tokens per accepted change;&lt;/li&gt;
&lt;li&gt;elapsed time from implementation to accepted result;&lt;/li&gt;
&lt;li&gt;retries by failure category;&lt;/li&gt;
&lt;li&gt;validation/administration share of total spend;&lt;/li&gt;
&lt;li&gt;and low-value developer interruptions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And I need to watch the other side too.&lt;/p&gt;

&lt;p&gt;If the workflow gets cheaper because I skipped useful evidence, that is not optimization.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;That is just a cheaper bug.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The quality bar stays.&lt;/p&gt;

&lt;p&gt;The question is whether the path to that quality bar can get smarter as the workflow learns.&lt;/p&gt;

&lt;h2&gt;
  
  
  The question I keep coming back to
&lt;/h2&gt;

&lt;p&gt;AI has made code generation fast enough that the expensive part is easier to see.&lt;/p&gt;

&lt;p&gt;It is not always writing the code.&lt;/p&gt;

&lt;p&gt;It is deciding what to do with the evidence that arrives afterward.&lt;/p&gt;

&lt;p&gt;Retry?&lt;br&gt;
Rework?&lt;br&gt;
Redesign?&lt;br&gt;
Repeat validation?&lt;br&gt;
Add a review?&lt;br&gt;
Skip a review whose evidence is still valid?&lt;br&gt;
Stop because the issue is no longer needed?&lt;br&gt;
Or bring in a developer because this is finally the point where human judgment matters?&lt;/p&gt;

&lt;p&gt;Now I have a new level of freedom and need to experiment and optimize, so the question i am asking myself is:&lt;br&gt;
&lt;strong&gt;When one of the agent stages fails, which parts of the remaining path still add evidence?&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>devops</category>
      <category>productivity</category>
    </item>
    <item>
      <title>An agent can suggest a lesson. Should it become a rule?</title>
      <dc:creator>Motty Chen</dc:creator>
      <pubDate>Tue, 13 Oct 2026 16:53:40 +0000</pubDate>
      <link>https://dev.to/mottych/an-agent-can-suggest-a-lesson-should-it-become-a-rule-2nl7</link>
      <guid>https://dev.to/mottych/an-agent-can-suggest-a-lesson-should-it-become-a-rule-2nl7</guid>
      <description>&lt;p&gt;If you are running an agentic workflow for coding, I am pretty sure you already know that -  sometimes an AI coding agent can get stuck for a stupid, boring reason.&lt;/p&gt;

&lt;p&gt;For example, in a recent run of my own workflow, an agent failed because it was missing Jam credentials. I use Jam to report bugs and provide a link and the MCP to the triage agent to help it understand the bug, but this run failed even though there was no Jam link to investigate. If anyone with a common sense would have worked on this issue (i.e. a human) they wouldn't worry about it, but the agent does unless you tell it: Before worrying about access, you needed to check if that access is even relevant.&lt;/p&gt;

&lt;p&gt;So in this specific instance the agent stopped, raised a huma-gate, and waited for direction. Once I responded, I would expect the agent to remember that decision... That is the sort of correction I want the next agent to use. But turning every correction into a permanent instruction creates another problem: a growing pile of rules, with nobody checking whether they still belong.&lt;/p&gt;

&lt;p&gt;Since I am the one building IssueFlow, this was a practical workflow problem for me. Here is how I approach it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Start with a specific mistake
&lt;/h2&gt;

&lt;p&gt;“&lt;em&gt;Be more careful&lt;/em&gt;” is not much of a lesson. It gives the next agent no useful test.&lt;/p&gt;

&lt;p&gt;“&lt;em&gt;Do not block on missing Jam credentials when the issue has no Jam link&lt;/em&gt;” is more concrete. It names the condition and the action to avoid.&lt;/p&gt;

&lt;p&gt;The important question is whether the proposal captures something useful beyond one task. A workaround for a single issue should not quietly become a rule for every future run. &lt;/p&gt;

&lt;h2&gt;
  
  
  A proposal is evidence, not an instruction yet
&lt;/h2&gt;

&lt;p&gt;The solution I was after is a balance between being too specific and too broad. I didn't want to send an agent a pile of 200 rules with every prompt. Those will get lost in the sea of instructions, not to mention token cost. &lt;/p&gt;

&lt;p&gt;In IssueFlow, agents can submit &lt;em&gt;learning proposals&lt;/em&gt;. A librarian agent collects, combines, and generalizes them into readable &lt;em&gt;candidate rules&lt;/em&gt;, with the actual agent instructions attached.&lt;/p&gt;

&lt;p&gt;The IssueFlow operation (a human, lol) reviews both parts: what the rule means, and what the agent will be told to do. I can approve it, edit it or reject it.&lt;/p&gt;

&lt;p&gt;That was an important part I did not want to skip. An agent can draw the wrong lesson from a failure just as easily as it can draw the wrong conclusion while coding. “This failed once” does not automatically mean “never do this.”&lt;/p&gt;

&lt;p&gt;A useful rule should explain the mistake it addresses, the condition where it applies, and the behavior it asks for. It should leave enough evidence to check the reasoning.&lt;/p&gt;

&lt;h2&gt;
  
  
  Choose where the rule belongs
&lt;/h2&gt;

&lt;p&gt;The next part in the learning system design was: which agent should even get those rules. For example, a lesson from 'design-review' does not necessarily belong in 'cleanup'. A rule about implementation does not need to take space in every unrelated stage.&lt;br&gt;
Proposals are being received from a specific agent at a specific stage, and when the librarian works on those learning (generalize, consolidate), it does it for each agent separately.&lt;/p&gt;

&lt;p&gt;IssueFlow review process lets me choose specific stages or make a rule general. The stage labels make that scope visible, and I can adjust it.&lt;/p&gt;

&lt;p&gt;This is a small decision with a real purpose: keep an instruction close to the work where it matters. More prompt text is not automatically more guidance.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fctyp04lazympsyf4q7u1.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fctyp04lazympsyf4q7u1.png" alt="Agent proposes a lesson; librarian organizes it; human approves, edits or rejects it and chooses stages; usage and retirement proposals inform later review." width="800" height="550"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Keep reviewing the rules
&lt;/h2&gt;

&lt;p&gt;Approval is not the end of the process. I wanted to measure the effectiveness of each rule.&lt;/p&gt;

&lt;p&gt;Agents report when they use a rule. The librarian can use that history to identify rules not reported as used for a long time, and then suggest retiring the rule. I can also retire a rule manually.&lt;/p&gt;

&lt;p&gt;Not only does rule approval matter. Rejection has a purpose too. When I reject a proposal with a reason, that reason is recorded and used by the librarian when it handles similar proposals later. Otherwise, I could spend a whole week just rejecting the same idea in a slightly different hat.&lt;/p&gt;

&lt;p&gt;Note: the usage reports are signals to investigate. They are not treated as proof that the agent followed every instruction, or that a particular mistake would certainly have happened without it. &lt;/p&gt;

&lt;h2&gt;
  
  
  Learning needs human judgment too
&lt;/h2&gt;

&lt;p&gt;What I learned after implementing the self-learning system is that this provides a way to maintain instructions. It is not a promise that agents stop making mistakes, but it does help eliminate many of the recurring problems from real-life experience.&lt;/p&gt;

&lt;p&gt;The goal is: make a useful correction available to later work, keep its scope clear, and give people a way to remove advice that no longer helps. Major learning finds its way to the prompt and is retired as a rule.&lt;/p&gt;

&lt;p&gt;That leaves a question I’m still interested in: how much instruction should survive from one task to the next?&lt;/p&gt;

&lt;p&gt;If you use coding agents, how do you handle that today? Do you keep adding instructions, or do you also review and remove them?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.issueflow.cloud/#demo" rel="noopener noreferrer"&gt;Watch the short IssueFlow workflow demo&lt;/a&gt;. It shows a design approval and an unexpected decision during a real run. (The learning process described here is a separate part of the product)&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>productivity</category>
      <category>discuss</category>
    </item>
    <item>
      <title>My AI marketing agent reviewed my coding agent</title>
      <dc:creator>Motty Chen</dc:creator>
      <pubDate>Wed, 07 Oct 2026 22:30:12 +0000</pubDate>
      <link>https://dev.to/mottych/my-ai-agent-needed-another-ai-agent-apparently-were-doing-this-now-2g5e</link>
      <guid>https://dev.to/mottych/my-ai-agent-needed-another-ai-agent-apparently-were-doing-this-now-2g5e</guid>
      <description>&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fovrcyfrfdx0ushh14rer.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fovrcyfrfdx0ushh14rer.png" alt="An agent needs an agent" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I asked an AI agent to help me market IssueFlow. It ended up reviewing designs from my coding agents—and catching problems in how we planned to measure signups, useful activity, and payments.&lt;/p&gt;

&lt;p&gt;That wasn’t quite the marketing help I had pictured. But here we are.&lt;/p&gt;

&lt;p&gt;I use ChatGPT to help manage the campaign: find the right people, explain the product, and help bring in customers. Ideally while I’m doing my full-time job and building two products.&lt;/p&gt;

&lt;p&gt;Looking at my calendar, then at my wife, the obvious conclusion was: “I could use some help.”&lt;/p&gt;

&lt;p&gt;So we started running ads.&lt;/p&gt;

&lt;p&gt;Then my marketing agent pointed out something inconvenient: clicks are nice, but what happens afterward?&lt;/p&gt;

&lt;p&gt;Did someone sign up? Did they complete a useful workflow? Did they become a paying customer?&lt;/p&gt;

&lt;p&gt;Fair questions. Answering them properly needed changes inside IssueFlow.&lt;/p&gt;

&lt;p&gt;So I asked the marketing agent to create the development issues. IssueFlow—which I also use to develop IssueFlow—picked them up. Its configured agents started working through triage, design, and design review.&lt;/p&gt;

&lt;p&gt;Then the first design reached an approval gate.&lt;/p&gt;

&lt;p&gt;That’s when things got interesting.&lt;/p&gt;

&lt;h2&gt;
  
  
  The requester became the reviewer
&lt;/h2&gt;

&lt;p&gt;Normally, I review the work at that gate.&lt;/p&gt;

&lt;p&gt;This time, the marketing agent had written the issues. It knew what it needed and why. So I explicitly authorized it to review the designs and approve them—or send them back.&lt;/p&gt;

&lt;p&gt;I delegated that decision for these specific issues. The system didn’t quietly decide that human approval was an outdated concept.&lt;/p&gt;

&lt;p&gt;Now we had one agent requesting a feature, other agents designing it, and the requesting agent checking whether the proposed solution actually solved its problem.&lt;/p&gt;

&lt;p&gt;An agent needed an agent.&lt;/p&gt;

&lt;p&gt;We had recreated a small software team. Thankfully, nobody scheduled a recurring alignment meeting.&lt;/p&gt;

&lt;h2&gt;
  
  
  A passing design review wasn’t enough
&lt;/h2&gt;

&lt;p&gt;The first issue covered signup tracking.&lt;/p&gt;

&lt;p&gt;Its design had already passed an automated review. But when the requesting agent checked it against the original requirements, it found gaps.&lt;/p&gt;

&lt;p&gt;How would the website pass the visitor’s identity and session information to the portal? What should happen if an event was sent, but delivery couldn’t be confirmed? How would later activity stay connected to the original visit?&lt;/p&gt;

&lt;p&gt;One subtle problem concerned time.&lt;/p&gt;

&lt;p&gt;The design used the time when information was handed over. The reviewer needed the timing tied to the actual visitor session.&lt;/p&gt;

&lt;p&gt;Those sound similar until someone leaves a tab open, returns later, and your neat little assumption starts doing interpretive dance.&lt;/p&gt;

&lt;p&gt;The agent sent the design back with specific corrections.&lt;/p&gt;

&lt;p&gt;An honest confession: I wouldn’t have caught all of this myself. I know how IssueFlow handles, well… issue flow. The details of connecting it to marketing platforms are a different area.&lt;/p&gt;

&lt;p&gt;The revised design fixed several problems. The marketing agent accepted those changes, kept the remaining concern open, and requested another focused revision. IssueFlow routed the work through its design-rework stage.&lt;/p&gt;

&lt;p&gt;Eventually, the design reached a point the requester could approve.&lt;/p&gt;

&lt;p&gt;What mattered was that the feedback stayed with the work. The next review could focus on what had changed instead of starting the whole explanation again.&lt;/p&gt;

&lt;h2&gt;
  
  
  The most useful questions were about what the numbers meant
&lt;/h2&gt;

&lt;p&gt;The next two issues covered activation and payments.&lt;/p&gt;

&lt;p&gt;For activation, one proposed interpretation could count breaking a request into smaller child issues as meaningful progress.&lt;/p&gt;

&lt;p&gt;But that wasn’t what we wanted to measure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Creating more work is not the same as completing useful work.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If it were, my to-do list would be our most successful customer.&lt;/p&gt;

&lt;p&gt;The requesting agent pushed back: activation should reflect a successful workflow outcome. Splitting a request into pieces wasn’t enough.&lt;/p&gt;

&lt;p&gt;At this point, I was watching agents discuss what “useful” actually meant. A surprisingly familiar software-development conversation.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fh9n40aldgxg59wqenvgh.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fh9n40aldgxg59wqenvgh.png" alt="The review: creating more tasks isn’t the same as delivering useful work" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The payment design raised another question.&lt;/p&gt;

&lt;p&gt;Suppose you can verify a payment, but you haven’t finished checking the earlier payment history. Can you call it the customer’s &lt;strong&gt;first&lt;/strong&gt; payment?&lt;/p&gt;

&lt;p&gt;You know money arrived. You don’t necessarily know it was the first time.&lt;/p&gt;

&lt;p&gt;That distinction matters when you’re counting new paying customers.&lt;/p&gt;

&lt;p&gt;The revised design kept those facts separate instead of turning uncertainty into a confident-looking number.&lt;/p&gt;

&lt;p&gt;There were also corrections around consent and recovery. Analytics needed to respect consent, and a measurement failure shouldn’t prevent the customer’s actual workflow from succeeding.&lt;/p&gt;

&lt;p&gt;These weren’t just code-style preferences. They were decisions about whether the implementation would still mean what we originally asked for.&lt;/p&gt;

&lt;h2&gt;
  
  
  Approval still wasn’t a magic wand
&lt;/h2&gt;

&lt;p&gt;Once the designs were approved, implementation continued.&lt;/p&gt;

&lt;p&gt;And later checks found more problems.&lt;/p&gt;

&lt;p&gt;Code review caught implementation defects. Validation exposed missing test evidence. Related changes needed to be brought together so they would work correctly.&lt;/p&gt;

&lt;p&gt;IssueFlow routed work back for corrections as those checks required.&lt;/p&gt;

&lt;p&gt;A design gate doesn’t make everything afterward correct. It gives the work a clearer direction. Later checks still have a job to do.&lt;/p&gt;

&lt;p&gt;All three issues eventually completed, and their code reached a successful production deployment.&lt;/p&gt;

&lt;p&gt;Even then, we couldn’t announce, “Measurement solved!”&lt;/p&gt;

&lt;p&gt;Configuration and verification that the events were actually received and processed remained separate work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Shipped code and a verified customer journey are different milestones.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That’s a distinction I want both the system and the people using it to keep making.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I’d keep—and what I’d improve
&lt;/h2&gt;

&lt;p&gt;I build IssueFlow, so this isn’t an independent customer review. It’s an account of using the product to develop the product.&lt;/p&gt;

&lt;p&gt;And it wasn’t frictionless.&lt;/p&gt;

&lt;p&gt;Some reviews required too much reading. A short summary of “what you asked us to fix, what changed, and where the evidence is” would have made the decision easier.&lt;/p&gt;

&lt;p&gt;Still, three things were useful:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The requester checked the meaning of the work.&lt;/strong&gt; A technically reasonable design could still measure the wrong thing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Feedback stayed with the issue.&lt;/strong&gt; Revisions could address specific concerns without losing the earlier decisions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Approval had a clear scope.&lt;/strong&gt; I chose which decisions to delegate. That didn’t remove the need for later checks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I didn’t personally type every review response. I decided who could make those decisions for this work.&lt;/p&gt;

&lt;p&gt;That’s the control I care about: being able to delegate execution and judgment deliberately, with clear boundaries and a record I can inspect.&lt;/p&gt;

&lt;p&gt;Also, apparently, having an AI agent discover the timeless software-development experience of saying:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;That’s close. But it isn’t quite what I asked for.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Some things really do survive every technology shift.&lt;/p&gt;

&lt;h2&gt;
  
  
  Want to see the workflow?
&lt;/h2&gt;

&lt;p&gt;This short demo follows a &lt;strong&gt;separate IssueFlow issue&lt;/strong&gt;. It shows a planned design approval, an unexpected agent question, and the recorded decision that lets work continue.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.issueflow.cloud/#demo" rel="noopener noreferrer"&gt;Watch our short demo&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you’re building with coding agents, who checks that “done” still means what you originally wanted?&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;I’m the developer behind &lt;a href="https://www.issueflow.cloud/" rel="noopener noreferrer"&gt;IssueFlow&lt;/a&gt;, a workflow orchestration tool for AI coding agents. It helps automate the development process while keeping human judgment where you want it. This story comes from using it to build IssueFlow itself.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>devops</category>
      <category>productivity</category>
    </item>
    <item>
      <title>AI Made Me Faster at Building—But It Also Gave Me More to Supervise</title>
      <dc:creator>Motty Chen</dc:creator>
      <pubDate>Fri, 25 Sep 2026 15:34:06 +0000</pubDate>
      <link>https://dev.to/mottych/ai-made-me-faster-at-building-but-it-also-gave-me-more-to-supervise-l22</link>
      <guid>https://dev.to/mottych/ai-made-me-faster-at-building-but-it-also-gave-me-more-to-supervise-l22</guid>
      <description>&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F81rec50wej6ojgjj4nat.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F81rec50wej6ojgjj4nat.png" alt="IssueFlow - My Story" width="800" height="336"&gt;&lt;/a&gt;&lt;br&gt;
I did not set out to build Issue Flow as a product.&lt;br&gt;
I built it because I was frustrated...&lt;/p&gt;

&lt;p&gt;In September 2025, I was developing a large product while working a demanding full-time job. This is a product I was planning to build for a long tine, but never had the bandwidth. AI had opened up a new kind of possibility: I could make meaningful progress in the limited time I had outside work. With an IDE, a chat interface, and early coding agents, I started building piece by piece.&lt;/p&gt;

&lt;p&gt;But as development accelerated, a different problem appeared.&lt;br&gt;
The agents could help write code. They could help investigate. They could help with individual tasks.&lt;br&gt;
What they could not do was run my entire development process in a way I trusted. With over 35 years in IT, I have my quality requirements I did not want to compromise on.&lt;br&gt;
I tried the tools that were emerging at the time: Copilot agents, Cursor, the Kiro, and others. Each solved part of the problem. But none gave me what I actually needed: a way to orchestrate work from ideation through deployment, while involving me only when my judgment was truly needed. Later, when the product was testable, the problem increased - bug reports came with very vague language, so I had to replicate them one by one to recreate the issue myself.&lt;/p&gt;

&lt;p&gt;I did not want to spend my limited time babysitting prompts.&lt;br&gt;
I wanted to decide where the human checkpoints belonged. I wanted agents to keep moving through clear work and call my attention when there was a decision, a blocker, a quality concern, or a meaningful tradeoff.&lt;br&gt;
That was the beginning of Issue Flow.&lt;/p&gt;

&lt;h2&gt;
  
  
  The real problem was not code generation
&lt;/h2&gt;

&lt;p&gt;When people talk about AI-assisted development, the conversation often centers on how quickly an agent can generate code.&lt;br&gt;
That matters. But once you are working on a real product, code generation is only one small part of the process.&lt;/p&gt;

&lt;p&gt;Someone still has to understand an issue. Someone has to determine which repository owns it. Someone has to investigate the root cause, consider dependencies, sequence work, validate the result, and decide whether it is ready for production.&lt;/p&gt;

&lt;p&gt;New features came with their own challenges: intent alignment, business value, multi-repo coordination, understanding the persona, and other challenges the AI could not do on its own - not at the quality I needed.&lt;/p&gt;

&lt;p&gt;For a builder with limited time, this coordination becomes the bottleneck.&lt;br&gt;
At first, I created something simple for my own workflow: a way to orchestrate agents around the steps I was already taking. I designed it to stay flexible because I knew my process would evolve as the product evolved.&lt;br&gt;
And it did.&lt;/p&gt;

&lt;p&gt;The early versions had plenty of problems. Agents could crash. Detecting a completed task was not always reliable. Capacity management was inconsistent. Each failure exposed another part of the workflow that needed to become more resilient.&lt;br&gt;
By May 2026, I realized I needed to take it seriously as a product in its own right.&lt;/p&gt;

&lt;p&gt;I gave it a name: Issue Flow.&lt;/p&gt;

&lt;h2&gt;
  
  
  From vague report to production
&lt;/h2&gt;

&lt;p&gt;The need became even clearer when my original product, Aligned on Purpose, reached the stage where testers could use it.&lt;br&gt;
Testers reported issues from their own perspective, as they should. But a report such as “this screen is not working correctly” does not tell a developer whether the problem lives. Is it in the frontend, the backend, an API contract, or a different repository altogether?&lt;br&gt;
I found myself doing so much manual research that it sometimes felt faster to test the whole product myself.&lt;br&gt;
So I expanded Issue Flow.&lt;/p&gt;

&lt;p&gt;It could take a vague issue, gather available evidence such as screenshots, network activity, and logs, determine the likely root cause and responsible repository, and create the appropriate sub-issues. It could account for dependencies and concurrency before moving work into the system.&lt;/p&gt;

&lt;p&gt;Over time, it became a workflow that could take a bug report or enhancement from the initial description toward production, while bringing me in only where I could contribute real value.&lt;br&gt;
&lt;strong&gt;That distinction matters.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The goal is not to remove humans from development. The goal is to make human involvement intentional.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Control without constant supervision
&lt;/h2&gt;

&lt;p&gt;As Issue Flow became more capable, I ran into another challenge: cost.&lt;br&gt;
More automation meant more work could move at once. More work meant more token usage. Eventually, a quota limit could stop a workflow in the middle of its progress.&lt;/p&gt;

&lt;p&gt;So I added another layer of orchestration: choosing models based on issue complexity, recognizing quota limits, and switching to another available agentic framework when appropriate.&lt;br&gt;
Issue Flow is not meant to lock people into one AI provider or one way of working.&lt;/p&gt;

&lt;p&gt;Whether someone prefers Gemini, Copilot, Claude, Cursor, OpenCode, or another framework, they should be able to design a workflow that matches how they work. They should be able to define their own quality gates, approval points, escalation paths, and budget controls—without maintaining a maze of configuration files.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building the product with the product
&lt;/h2&gt;

&lt;p&gt;Today, I use Issue Flow to build Aligned on Purpose.&lt;br&gt;
I also use Issue Flow to build Issue Flow itself.&lt;br&gt;
That is the most meaningful validation I could ask for. What started as a personal solution for building alongside a full-time job has become a product for other developers and teams facing the same reality.&lt;/p&gt;

&lt;p&gt;AI can make us dramatically faster.&lt;br&gt;
But speed alone is not the answer.&lt;br&gt;
The real opportunity is to build workflows where quality stays protected, budgets stay visible, and people are involved exactly where their experience and judgment matter most.&lt;br&gt;
That is why I built Issue Flow.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>coding</category>
      <category>productivity</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
