<?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: Evgeniy Kormin</title>
    <description>The latest articles on DEV Community by Evgeniy Kormin (@evgeniy_kormin).</description>
    <link>https://dev.to/evgeniy_kormin</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%2F3986002%2F99fe30ae-7e35-40ba-9ce1-2ca862c54b35.jpg</url>
      <title>DEV Community: Evgeniy Kormin</title>
      <link>https://dev.to/evgeniy_kormin</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/evgeniy_kormin"/>
    <language>en</language>
    <item>
      <title>Divide and Let the LLM Do the Rest: From Personal Experience to Architecture</title>
      <dc:creator>Evgeniy Kormin</dc:creator>
      <pubDate>Tue, 01 Sep 2026 14:20:23 +0000</pubDate>
      <link>https://dev.to/evgeniy_kormin/divide-and-let-the-llm-do-the-rest-from-personal-experience-to-architecture-53hc</link>
      <guid>https://dev.to/evgeniy_kormin/divide-and-let-the-llm-do-the-rest-from-personal-experience-to-architecture-53hc</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;Where This Started&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;A few years ago, I started thinking about a simple question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;How far can we actually push an LLM on a complex software project?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's already well established. I mean something harder:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Can an LLM take a complex problem, break it into smaller pieces, solve those pieces, test the results, and eventually assemble everything into a working product?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;At the time, the conversation seemed to be split between two extremes:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;AI is basically useless, although admittedly pretty cool.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;AI is the future. Give it a few years and programmers will be gone.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I never really bought either position. &lt;br&gt;
I've always thought that when you throw a genuinely difficult problem at a system, getting 100% right is unlikely. But getting 0% right is unlikely too. &lt;br&gt;
And that's actually interesting. Because if we can reliably measure what worked and what didn't, we can start improving the system instead of arguing about whether AI "works."&lt;br&gt;
So I spent almost a year trying to find that boundary. Almost a Year of Trial and Error&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;First: Instructions&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;I started with instructions. A lot of instructions.&lt;/p&gt;

&lt;p&gt;The idea seemed straightforward: give the model enough rules and guidance, and let it dynamically select the instructions relevant to the current task.&lt;/p&gt;

&lt;p&gt;It didn't work particularly well. The more instructions I added, the harder they became to manage. Eventually, I started getting confused by the instructions — and then the AI started getting confused by them too. So I needed a better way to organize knowledge.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Then Came RAG and "Atomic" Rules&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The obvious next step was RAG.&lt;/p&gt;

&lt;p&gt;What could go wrong?&lt;/p&gt;

&lt;p&gt;Instead of having one giant set of instructions, we could break everything into small, atomic rules and let the AI retrieve the rules it needed.&lt;/p&gt;

&lt;p&gt;On paper, this looked great. In practice, it opened up an entirely new set of problems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How do you actually split the knowledge?&lt;/li&gt;
&lt;li&gt;What does "atomic" mean?&lt;/li&gt;
&lt;li&gt;How many rules should the model retrieve?&lt;/li&gt;
&lt;li&gt;How do we know when it has enough?&lt;/li&gt;
&lt;li&gt;What happens when it doesn't have enough?&lt;/li&gt;
&lt;li&gt;Where should it search next?&lt;/li&gt;
&lt;li&gt;How do we know whether a source is trustworthy?&lt;/li&gt;
&lt;li&gt;How do we verify a rule?&lt;/li&gt;
&lt;li&gt;What happens when a rule becomes outdated?&lt;/li&gt;
&lt;li&gt;What happens when two rules contradict each other?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And that was just the beginning. The same fundamental problem kept coming back.&lt;br&gt;
Once the project grew large enough — around 5,000 lines of code — things started getting difficult again.&lt;br&gt;
The problem wasn't simply retrieving information. The problem was understanding the system as a whole. Maybe the Answer Was Refactoring&lt;br&gt;
My next thought was that we needed some kind of automated refactoring mechanism. But eventually I realized that wasn't quite the right problem either. What I really wanted was a way for the LLM to answer a much more fundamental question:&lt;/p&gt;

&lt;p&gt;"How well do I actually understand this project?"&lt;/p&gt;

&lt;p&gt;That's when I noticed another threshold. At around 3,000 lines, at least with the models I was using at the time — including DeepSeek V4 Flash — the context would fill up extremely quickly.&lt;/p&gt;

&lt;p&gt;Once that happened, every new task effectively became a fresh start. The model could no longer reliably maintain a mental model of the entire project. And that led me to an uncomfortable conclusion. Maybe we shouldn't try to make the software structure equally convenient for humans and LLMs. At least, I didn't know how to do that.&lt;/p&gt;

&lt;p&gt;Something had to change.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;The First Real Breakthrough&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The breakthrough wasn't a better prompt.&lt;/p&gt;

&lt;p&gt;It wasn't a better RAG system.&lt;br&gt;
It wasn't a bigger context window.&lt;br&gt;
It was artifacts.&lt;/p&gt;

&lt;p&gt;I started using artifacts as a way to make decisions explicit and track what had actually happened during development.&lt;/p&gt;

&lt;p&gt;At roughly the same time, I stopped using OpenCode and started building my own IDE. That turned out to be a much bigger decision than I expected.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;The Principles&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;From that point on, I started designing around a few simple principles.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For the User&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The user shouldn't need to understand software engineering to use the system.&lt;/li&gt;
&lt;li&gt;They might have zero experience building software.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;But they should always be able to answer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What happened?&lt;/li&gt;
&lt;li&gt;Why did it happen?&lt;/li&gt;
&lt;li&gt;What changed?&lt;/li&gt;
&lt;li&gt;What happens next?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;For Software Development&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The system should prioritize:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Transparency&lt;/li&gt;
&lt;li&gt;Verifiability&lt;/li&gt;
&lt;li&gt;Falsifiability&lt;/li&gt;
&lt;li&gt;Reproducibility&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And there was another principle I didn't want to lose:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Don't accidentally build SQL.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This might sound strange, but I've seen the pattern before.&lt;/p&gt;

&lt;p&gt;Something starts as:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Let's manage a database using natural language."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And eventually turns into a massive infrastructure project with layers upon layers of machinery. I didn't want to build an enormous system just to make LLMs slightly easier to use.&lt;/p&gt;

&lt;p&gt;The system itself had to remain understandable.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;A Real-World Example&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Consider a clinic manager.&lt;br&gt;
They probably know exactly how the clinic should operate.&lt;/p&gt;

&lt;p&gt;They know:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how the queues should work;&lt;/li&gt;
&lt;li&gt;which documents need to be processed;&lt;/li&gt;
&lt;li&gt;when those documents need to be processed;&lt;/li&gt;
&lt;li&gt;when notifications should be sent;&lt;/li&gt;
&lt;li&gt;what happens when something goes wrong.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They may understand the business process extremely well. But turning that knowledge into software normally requires a whole team of specialists.&lt;/p&gt;

&lt;p&gt;So here's the question I'm interested in:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;How much of that work can we safely move onto the shoulders of AI?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Notice the word &lt;strong&gt;safely&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I'm not arguing that we should "&lt;strong&gt;&lt;em&gt;give everything to AI.&lt;/em&gt;&lt;/strong&gt;"&lt;/p&gt;

&lt;p&gt;I'm asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Which parts can we delegate?&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And I suspect the answer depends much less on the raw intelligence of the model than we currently think.&lt;/p&gt;

&lt;p&gt;It may depend on the harness around the model. And on choosing the right artifacts.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Where Could This Lead?&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;There are several possible outcomes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Maybe AI Can't Do It&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We might eventually discover that reliable task decomposition simply doesn't generalize.&lt;/p&gt;

&lt;p&gt;Every real-world problem may be too different.&lt;br&gt;
Maybe there is no universal architecture that makes AI + LLM + harness work reliably.&lt;br&gt;
And maybe, in some cases, hiring an expert will simply be cheaper.&lt;/p&gt;

&lt;p&gt;That's a perfectly valid outcome.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Maybe We Get 10–15%&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;AI might reliably handle only a portion of the work.&lt;br&gt;
Suppose we save 10–15% of someone's time.&lt;br&gt;
That may not sound revolutionary.&lt;br&gt;
But 12.5% is roughly one employee out of eight.&lt;br&gt;
For a large organization, a 10% reduction in labor costs is already a very serious business case.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Maybe AI Becomes an Operator&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Perhaps we can delegate a significant portion of operational processes to AI.&lt;br&gt;
Humans supervise the system and step in when necessary.&lt;/p&gt;

&lt;p&gt;Think about a power plant operator.&lt;/p&gt;

&lt;p&gt;They don't manually control every parameter every second.&lt;br&gt;
They sit at the control panel, monitor the system, and intervene when something requires human judgment.&lt;/p&gt;

&lt;p&gt;Maybe software systems will work the same way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Maybe AI Runs Almost Everything&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Take aviation as another analogy.&lt;/p&gt;

&lt;p&gt;There are situations where modern aircraft can handle an enormous amount of the actual flight work.&lt;/p&gt;

&lt;p&gt;The pilots remain responsible for critical decisions and exceptional situations.&lt;/p&gt;

&lt;p&gt;In a future version of this model, humans might spend most of their time monitoring, diagnosing, and handling edge cases rather than continuously operating the system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Or Maybe We Go All the Way&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And there is an even more extreme possibility.&lt;br&gt;
AI handles almost everything. Human experts don't disappear. Instead, they become highly specialized service providers. &lt;/p&gt;

&lt;p&gt;A company might only need an expert every couple of weeks rather than having one embedded in the organization full-time.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I don't know which of these futures is correct.&lt;br&gt;
That's exactly what I want to find out.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Let's Build Something and See&lt;/strong&gt;
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;This is where I want to start a discussion.&lt;br&gt;
I realize the idea is controversial.&lt;br&gt;
That's fine.&lt;br&gt;
Maybe I'm wrong.&lt;br&gt;
Maybe someone will take these ideas, throw half of them away, and build something much better.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I'd be perfectly happy with that outcome.&lt;br&gt;
But there is one shift in perspective that I think is important.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Code Isn't the Product!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I'd like to move one level higher in abstraction.&lt;br&gt;
We tend to think of code as the final product.&lt;br&gt;
I increasingly think that's the wrong abstraction.&lt;br&gt;
Code is a means of solving a problem.&lt;br&gt;
The actual product is the solution to the client's problem.&lt;/p&gt;

&lt;p&gt;If a clinic comes to you because patients are waiting too long, the deliverable isn't "50,000 lines of Python."&lt;/p&gt;

&lt;p&gt;The deliverable is fewer problems with patient flow.&lt;br&gt;
The code is just one of the tools used to get there.&lt;br&gt;
That distinction becomes extremely important when we start delegating parts of software engineering to AI.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;A Library of Solutions&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;This leads to another idea I've been exploring:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;a library of proven solutions.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Imagine that instead of asking an AI to reinvent everything from scratch, we give it access to a collection of immutable, reusable implementations.&lt;/p&gt;

&lt;p&gt;The AI can:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;reference an existing solution;&lt;/li&gt;
&lt;li&gt;reuse it directly;&lt;/li&gt;
&lt;li&gt;adapt it when necessary;&lt;/li&gt;
&lt;li&gt;or decide that it doesn't apply.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;And each solution could accumulate real-world statistics.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How often was it used?&lt;/li&gt;
&lt;li&gt;Did it work?&lt;/li&gt;
&lt;li&gt;How often did it fail?&lt;/li&gt;
&lt;li&gt;In what environments?&lt;/li&gt;
&lt;li&gt;What versions were successful?&lt;/li&gt;
&lt;li&gt;That information could become part of the solution itself.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Blockchain might potentially play a role here by providing an immutable record of provenance and history.&lt;/p&gt;

&lt;p&gt;I'm not claiming blockchain is automatically the answer.&lt;/p&gt;

&lt;p&gt;The important idea is the immutable, verifiable history of a solution, not the technology used to implement it.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Exchanging Knowledge, Not Just Documents&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Experts in different domains could exchange knowledge without having to exchange huge theoretical documents. Instead, they could exchange deterministic agents and executable artifacts that demonstrate how their ideas actually work.&lt;br&gt;
Imagine an expert in healthcare building a workflow that captures how a particular clinical process should operate.&lt;br&gt;
Another organization could potentially import that knowledge, inspect it, test it, and adapt it.&lt;/p&gt;

&lt;p&gt;Not:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Here is a 200-page document explaining our methodology."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Here is a deterministic artifact that demonstrates the methodology. Run it. Inspect it. Test it. Decide whether it is useful."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That feels much closer to engineering knowledge than traditional documentation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;And perhaps that's the bigger opportunity.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Maybe the goal isn't to build an AI that knows everything.&lt;br&gt;
Maybe the goal is to build an environment where AI can reliably use what humans already know.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Divide the problem. &lt;/li&gt;
&lt;li&gt;Make every piece explicit. &lt;/li&gt;
&lt;li&gt;Let the LLM do what it is good at. &lt;/li&gt;
&lt;li&gt;And let deterministic systems, artifacts, and verification handle the rest.&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>architecture</category>
      <category>llm</category>
    </item>
    <item>
      <title>Can software remember expert meaning?</title>
      <dc:creator>Evgeniy Kormin</dc:creator>
      <pubDate>Sun, 28 Jun 2026 22:39:49 +0000</pubDate>
      <link>https://dev.to/evgeniy_kormin/can-software-remember-expert-meaning-2d9e</link>
      <guid>https://dev.to/evgeniy_kormin/can-software-remember-expert-meaning-2d9e</guid>
      <description>&lt;p&gt;We already build systems that remember a lot.&lt;/p&gt;

&lt;p&gt;They remember user activity, logs, tickets, code, comments, traces, alerts, and model outputs. They can even remember context across a task. But there is still one thing they mostly do not remember well: the meaning of expert judgment.&lt;/p&gt;

&lt;p&gt;That is the interesting question.&lt;/p&gt;

&lt;p&gt;What if software could remember which expert was trusted for which kind of decision, preserve the reason behind that choice, and use it later as advice?&lt;/p&gt;

&lt;p&gt;Not as absolute truth.&lt;br&gt;
As a living memory of expertise.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this question matters
&lt;/h2&gt;

&lt;p&gt;Today, expert knowledge is scattered.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Some of it lives in people’s heads.&lt;/li&gt;
&lt;li&gt;Some of it lives in meetings.&lt;/li&gt;
&lt;li&gt;Some of it lives in code review comments.&lt;/li&gt;
&lt;li&gt;Some of it lives in postmortems.&lt;/li&gt;
&lt;li&gt;Some of it disappears completely when someone leaves.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So when a system needs advice later, it usually has to reconstruct the past from fragments.&lt;/p&gt;

&lt;p&gt;That is slow.&lt;br&gt;
It is also fragile.&lt;/p&gt;

&lt;p&gt;If the system could remember not only what was chosen, but why it was chosen and in what context, that would be a different kind of software.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the system would need to remember
&lt;/h2&gt;

&lt;p&gt;It would not be enough to store a decision.&lt;/p&gt;

&lt;p&gt;A useful memory layer would need to preserve:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;    who made the decision;&lt;/li&gt;
&lt;li&gt;    what domain that person was trusted in;&lt;/li&gt;
&lt;li&gt;    what signals they used;&lt;/li&gt;
&lt;li&gt;    what the context was;&lt;/li&gt;
&lt;li&gt;    what the alternative options were;&lt;/li&gt;
&lt;li&gt;    what made the decision valid at the time.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In other words, the system should remember meaning, not just output.&lt;/p&gt;

&lt;p&gt;That is a much harder problem than storing facts.&lt;/p&gt;

&lt;h2&gt;
  
  
  The danger is not only hallucination
&lt;/h2&gt;

&lt;p&gt;When people talk about AI memory, they usually jump straight to hallucinations.&lt;/p&gt;

&lt;p&gt;That is a real concern, of course.&lt;br&gt;
But it is not the only one.&lt;/p&gt;

&lt;p&gt;A more subtle risk is stale trust.&lt;/p&gt;

&lt;p&gt;The system may remember an expert who used to be right for a specific kind of decision, and then continue to treat that memory as authoritative even after the domain changed.&lt;/p&gt;

&lt;p&gt;So the real question is not just:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; can the system remember?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;    can it remember with context?&lt;/li&gt;
&lt;li&gt;    can it know when the memory is no longer valid?&lt;/li&gt;
&lt;li&gt;    can it ask before crossing a boundary?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That matters more than perfect recall.&lt;/p&gt;

&lt;h2&gt;
  
  
  Advice is better than pretending to know
&lt;/h2&gt;

&lt;p&gt;Maybe the right goal is not a system that “knows.”&lt;/p&gt;

&lt;p&gt;Maybe the right goal is a system that advises.&lt;/p&gt;

&lt;p&gt;A good memory layer should behave more like an experienced assistant:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;    it remembers past choices;&lt;/li&gt;
&lt;li&gt;    it recognizes patterns;&lt;/li&gt;
&lt;li&gt;    it points to prior expert judgments;&lt;/li&gt;
&lt;li&gt;    it warns when the situation is outside the known range;&lt;/li&gt;
&lt;li&gt;    it asks for confirmation when confidence is low.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is much more realistic than expecting omniscience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Could this actually work?
&lt;/h2&gt;

&lt;p&gt;Probably, at least partially.&lt;/p&gt;

&lt;p&gt;We already have systems that can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;    retain working context;&lt;/li&gt;
&lt;li&gt;    connect related decisions;&lt;/li&gt;
&lt;li&gt;    reuse prior patterns;&lt;/li&gt;
&lt;li&gt;    reduce repetition;&lt;/li&gt;
&lt;li&gt;    surface relevant history.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So the idea is not science fiction.&lt;/p&gt;

&lt;p&gt;The open question is whether this can become reliable enough to help real teams make better decisions without pretending that human expertise has been replaced.&lt;/p&gt;

&lt;p&gt;Maybe it will work.&lt;br&gt;
Maybe it will fail in interesting ways.&lt;/p&gt;

&lt;p&gt;Either outcome would teach us something important:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;    what kinds of expertise can be preserved;&lt;/li&gt;
&lt;li&gt;    what kinds of expertise remain too contextual;&lt;/li&gt;
&lt;li&gt;    where software memory helps;&lt;/li&gt;
&lt;li&gt;    and where human judgment must stay in the loop.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The deeper question
&lt;/h2&gt;

&lt;p&gt;Maybe the real test is this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If software could remember the meaning of expert decisions, would it become wiser — or just more confidently wrong?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is the question worth asking.&lt;/p&gt;

&lt;p&gt;Because if the answer is yes, we get a new kind of system: one that can accumulate expertise instead of just accumulating data.&lt;/p&gt;

&lt;p&gt;If the answer is no, we still learn where the limits are.&lt;/p&gt;

&lt;p&gt;And that is useful too.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>software</category>
    </item>
    <item>
      <title>Code Is Cheap. Understanding Is Expensive</title>
      <dc:creator>Evgeniy Kormin</dc:creator>
      <pubDate>Sun, 28 Jun 2026 21:30:17 +0000</pubDate>
      <link>https://dev.to/evgeniy_kormin/code-is-cheap-understanding-is-expensive-3l2f</link>
      <guid>https://dev.to/evgeniy_kormin/code-is-cheap-understanding-is-expensive-3l2f</guid>
      <description>&lt;p&gt;We spent decades treating code as the primary bottleneck in software development. Writing it, reviewing it, shipping it — that was the hard part.&lt;/p&gt;

&lt;p&gt;That assumption is now outdated.&lt;/p&gt;

&lt;p&gt;Today, code is cheap. Understanding is expensive.&lt;br&gt;
The bottleneck moved&lt;/p&gt;

&lt;p&gt;With modern tools — especially AI-assisted ones — generating code is no longer the limiting factor. You can produce hundreds of lines in seconds. Boilerplate is trivial. Even non-trivial implementations are increasingly accessible.&lt;/p&gt;

&lt;p&gt;But something didn’t get faster.&lt;/p&gt;

&lt;p&gt;Answering questions like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;    Is this correct?&lt;/li&gt;
&lt;li&gt;    Is this safe?&lt;/li&gt;
&lt;li&gt;    Will this break something subtle?&lt;/li&gt;
&lt;li&gt;    Does this match the real-world constraints?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those are still slow. Sometimes painfully slow.&lt;/p&gt;

&lt;p&gt;Because these are not questions about code.&lt;br&gt;
They are questions about understanding.&lt;br&gt;
Code was never the real asset&lt;/p&gt;

&lt;p&gt;We like to think code is the system. It isn’t.&lt;/p&gt;

&lt;p&gt;Code is a compressed representation of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;    past incidents&lt;/li&gt;
&lt;li&gt;    production failures&lt;/li&gt;
&lt;li&gt;    edge cases&lt;/li&gt;
&lt;li&gt;    domain-specific constraints&lt;/li&gt;
&lt;li&gt;    decisions made under uncertainty&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When a senior engineer reviews a pull request, they are not checking syntax. They are pattern-matching against all of that invisible context.&lt;/p&gt;

&lt;p&gt;That’s why a simple change can take hours to approve.&lt;/p&gt;

&lt;p&gt;Not because it’s long.&lt;br&gt;
Because it’s ambiguous.&lt;br&gt;
Example: a “simple” change&lt;/p&gt;

&lt;p&gt;Imagine a change in a payment system:&lt;/p&gt;

&lt;blockquote&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;“Retry failed transactions up to 3 times.”
&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;Looks reasonable. Easy to implement. An AI can write it instantly.&lt;/p&gt;

&lt;p&gt;But an experienced reviewer will pause.&lt;/p&gt;

&lt;p&gt;Questions start appearing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;    What kinds of failures?&lt;/li&gt;
&lt;li&gt;    Idempotency guaranteed?&lt;/li&gt;
&lt;li&gt;    Could this double-charge?&lt;/li&gt;
&lt;li&gt;    What happened the last time we retried blindly?&lt;/li&gt;
&lt;li&gt;    Are there regulatory constraints?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of that is visible in the code itself.&lt;/p&gt;

&lt;p&gt;The real logic lives in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;    past incidents&lt;/li&gt;
&lt;li&gt;    tribal knowledge&lt;/li&gt;
&lt;li&gt;    unwritten rules&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The difficulty is not writing the retry loop.&lt;br&gt;
The difficulty is knowing whether it should exist at all.&lt;br&gt;
The illusion of productivity&lt;/p&gt;

&lt;p&gt;If code generation becomes 10x faster, it feels like productivity increased.&lt;/p&gt;

&lt;p&gt;But in many teams, something else happens:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;    More code is produced&lt;/li&gt;
&lt;li&gt;    Review becomes harder&lt;/li&gt;
&lt;li&gt;    Systems become less predictable&lt;/li&gt;
&lt;li&gt;    Knowledge becomes more fragmented&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You don’t remove the bottleneck.&lt;br&gt;
You move it — and often amplify it.&lt;/p&gt;

&lt;p&gt;From “writing code” to “understanding consequences.”&lt;br&gt;
Understanding is not intuition&lt;/p&gt;

&lt;p&gt;We often rely on phrases like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;    “This feels right”&lt;/li&gt;
&lt;li&gt;    “We’ve always done it this way”&lt;/li&gt;
&lt;li&gt;    “I think it should be fine”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s not understanding. That’s intuition.&lt;/p&gt;

&lt;p&gt;And intuition does not scale:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;    it’s not transferable&lt;/li&gt;
&lt;li&gt;    it’s not auditable&lt;/li&gt;
&lt;li&gt;    it’s not reproducible&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If two engineers look at the same change and reach different conclusions, the system depends on who you ask, not on what is true.&lt;/p&gt;

&lt;p&gt;That’s fragile.&lt;br&gt;
What real expertise looks like&lt;/p&gt;

&lt;p&gt;Real expertise is not the ability to write code quickly.&lt;/p&gt;

&lt;p&gt;It’s the ability to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;    reconstruct the reasoning behind a decision&lt;/li&gt;
&lt;li&gt;    connect code to past incidents&lt;/li&gt;
&lt;li&gt;    identify missing information&lt;/li&gt;
&lt;li&gt;    explain why something is safe or unsafe&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In other words:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Given the same inputs, an expert should be able to produce the same decision — and show why.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That is closer to a system than to intuition.&lt;br&gt;
Where this leads&lt;/p&gt;

&lt;p&gt;If code is cheap and understanding is expensive, then improving developer productivity is no longer about generating more code.&lt;/p&gt;

&lt;p&gt;It’s about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;    making decisions traceable&lt;/li&gt;
&lt;li&gt;    turning incidents into reusable knowledge&lt;/li&gt;
&lt;li&gt;    extracting patterns from reviews&lt;/li&gt;
&lt;li&gt;    reducing reliance on implicit memory&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Because the real risk is not that we can’t write code.&lt;/p&gt;

&lt;p&gt;The real risk is that we write more than we can understand.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>programming</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>Golden Armada: What AI-Native Software Looks Like in Execution</title>
      <dc:creator>Evgeniy Kormin</dc:creator>
      <pubDate>Thu, 18 Jun 2026 12:04:51 +0000</pubDate>
      <link>https://dev.to/evgeniy_kormin/golden-armada-what-ai-native-software-looks-like-in-execution-1g87</link>
      <guid>https://dev.to/evgeniy_kormin/golden-armada-what-ai-native-software-looks-like-in-execution-1g87</guid>
      <description>&lt;p&gt;👉 Source code &amp;amp; system:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/evgeniykormin86-stack/golden_armada" rel="noopener noreferrer"&gt;golden_armada&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/evgeniykormin86-stack/Programming-Paradigm-for-AI-Written-Software" rel="noopener noreferrer"&gt;Programming-Paradigm-for-AI-Written-Software&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉 Previous article (context):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/evgeniy_kormin/vibe-coding-bible-a-programming-paradigm-for-ai-written-software-gp9"&gt;a vibe coding programming paradigm&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  What happens when software is no longer primarily written — but executed through AI-driven decisions?
&lt;/h2&gt;

&lt;p&gt;In this article, I want to show a working system and what it actually produces at runtime.&lt;/p&gt;

&lt;p&gt;No manifesto. No theory expansion.&lt;/p&gt;

&lt;p&gt;Just execution.&lt;/p&gt;
&lt;h2&gt;
  
  
  Context: from “vibe coding” to runtime reality
&lt;/h2&gt;

&lt;p&gt;In the previous article I introduced the idea of vibe coding — a programming paradigm where AI becomes the primary code generator and the human shifts toward intent specification rather than implementation.&lt;/p&gt;

&lt;p&gt;That idea raises an immediate question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What does such a system actually look like when it runs?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Golden Armada is my attempt to answer that question experimentally.&lt;/p&gt;
&lt;h2&gt;
  
  
  What is Golden Armada?
&lt;/h2&gt;

&lt;p&gt;Golden Armada is an AI-native workflow engine where:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a user triggers actions through a structured UI&lt;/li&gt;
&lt;li&gt;an LLM (“DeepAgent”) plans execution steps&lt;/li&gt;
&lt;li&gt;a strict contract system applies mutations&lt;/li&gt;
&lt;li&gt;every action is recorded as an immutable trace&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The key idea is simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The system is not understood through code — but through execution traces.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  Architecture overview
&lt;/h2&gt;

&lt;p&gt;The system follows a strict execution pipeline:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User Action
   ↓
Intake Layer
   ↓
Workflow Loading
   ↓
LLM Planning (DeepAgent)
   ↓
Operation Execution
   ↓
Event Store Append
   ↓
Trace Flush
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Key constraints:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;all operations are strongly typed&lt;/li&gt;
&lt;li&gt;execution is deterministic after planning&lt;/li&gt;
&lt;li&gt;state changes are event-based&lt;/li&gt;
&lt;li&gt;everything is observable&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is intentionally closer to an execution machine than a traditional application.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why traces matter more than code
&lt;/h2&gt;

&lt;p&gt;In traditional systems, debugging means reading code and inferring behavior.&lt;/p&gt;

&lt;p&gt;In Golden Armada, debugging means:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;reading execution traces and reconstructing system behavior&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is closer to how distributed systems already work — but extended to AI-driven decision layers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real execution trace (example)
&lt;/h2&gt;

&lt;p&gt;Below is a real trace produced by the system:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;trace_id: ea7e24fc11dc43bdbfeacedbc628e9fd

[OK] Request received
button=split_node

[OK] Workflow loaded
workflow=wf_001 v1

[OK] Agent planning stage
operation=split
node=split

[OK] Event store append
patch_applied=true

[OK] Handler executed
duration: 0ms

Total duration: 29.7s
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;👉 Full logs available here:&lt;br&gt;
&lt;a href="https://github.com/evgeniykormin86-stack/golden_armada/tree/main/logs" rel="noopener noreferrer"&gt;https://github.com/evgeniykormin86-stack/golden_armada/tree/main/logs&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  What this trace shows
&lt;/h2&gt;

&lt;p&gt;Even in this small example, we can observe:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;where time is spent (LLM planning dominates)&lt;/li&gt;
&lt;li&gt;how deterministic execution follows planning&lt;/li&gt;
&lt;li&gt;how workflow mutation happens via operations&lt;/li&gt;
&lt;li&gt;how the system maintains auditability&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The important shift is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The runtime becomes the primary interface of understanding.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  Failure case (equally important)
&lt;/h2&gt;

&lt;p&gt;Not all executions succeed.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;[ERR] Node not found: split
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This trace shows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;LLM correctly planned an operation&lt;/li&gt;
&lt;li&gt;but workflow state did not match expectation&lt;/li&gt;
&lt;li&gt;system failed deterministically during execution&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is important:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;AI planning is not the same as system validity.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Design philosophy behind the system
&lt;/h2&gt;

&lt;p&gt;Golden Armada is built around four constraints:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;AI changes duplication cost. New behaviors can be introduced by generating new “skills”, not rewriting core logic.&lt;/li&gt;
&lt;li&gt;Graph complexity is intentionally constrained. Workflow depth is limited to avoid exponential reasoning complexity.&lt;/li&gt;
&lt;li&gt;Contracts replace implicit structure. All communication between components is strictly typed and validated.&lt;/li&gt;
&lt;li&gt;Observability is a first-class feature. If it is not traceable, it does not exist in the system.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What this system is NOT
&lt;/h2&gt;

&lt;p&gt;To avoid misunderstandings:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;it is not an autonomous agent system&lt;/li&gt;
&lt;li&gt;it is not production-ready infrastructure&lt;/li&gt;
&lt;li&gt;it is not a replacement for software engineering&lt;/li&gt;
&lt;li&gt;it is not a fully self-evolving system&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;an experimental execution environment for AI-driven workflows with full observability.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Why this matters (core insight)
&lt;/h2&gt;

&lt;p&gt;Most AI systems today fail not because they cannot generate output — but because:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;their internal decision process is not observable or reproducible.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Golden Armada explores a different direction:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;make execution observable first, intelligent second.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Limitations (important for honesty)
&lt;/h2&gt;

&lt;p&gt;Current limitations include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;limited scale of workflows&lt;/li&gt;
&lt;li&gt;non-deterministic LLM planning&lt;/li&gt;
&lt;li&gt;trace volume grows quickly&lt;/li&gt;
&lt;li&gt;debugging still requires human interpretation&lt;/li&gt;
&lt;li&gt;system complexity increases with feature expansion&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is expected at this stage.&lt;/p&gt;

&lt;h2&gt;
  
  
  Future direction
&lt;/h2&gt;

&lt;p&gt;Next steps in this experiment include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;automatic test generation from traces&lt;/li&gt;
&lt;li&gt;failure clustering and pattern detection&lt;/li&gt;
&lt;li&gt;trace-based debugging UI&lt;/li&gt;
&lt;li&gt;regression testing from execution history&lt;/li&gt;
&lt;li&gt;contract evolution based on observed failures&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Closing thought
&lt;/h2&gt;

&lt;p&gt;Golden Armada is not an answer.&lt;/p&gt;

&lt;p&gt;It is a question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What does software become when execution, not code, is the primary artifact?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We are still early — but we can already observe meaningful structure emerging from runtime behavior.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Vibe Coding Bible: A Programming Paradigm for AI-Written Software</title>
      <dc:creator>Evgeniy Kormin</dc:creator>
      <pubDate>Mon, 15 Jun 2026 18:49:49 +0000</pubDate>
      <link>https://dev.to/evgeniy_kormin/vibe-coding-bible-a-programming-paradigm-for-ai-written-software-gp9</link>
      <guid>https://dev.to/evgeniy_kormin/vibe-coding-bible-a-programming-paradigm-for-ai-written-software-gp9</guid>
      <description>&lt;h1&gt;
  
  
  Vibe Coding Bible: Rethinking Software Architecture for AI-Generated Code
&lt;/h1&gt;

&lt;p&gt;For the last year I noticed something consistent while working with AI-generated code.&lt;/p&gt;

&lt;p&gt;The more I used AI to write code, the more my systems started to break in a very specific way:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;small changes caused unexpected side effects
&lt;/li&gt;
&lt;li&gt;refactoring became increasingly risky
&lt;/li&gt;
&lt;li&gt;context grew until it became difficult to manage
&lt;/li&gt;
&lt;li&gt;AI sometimes “helped” by breaking nearby modules
&lt;/li&gt;
&lt;li&gt;fixing one thing often broke something else
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At some point I stopped thinking of this as a prompt engineering issue.&lt;/p&gt;

&lt;p&gt;It felt more like a &lt;strong&gt;fundamental mismatch in the programming model itself&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  The core mismatch
&lt;/h2&gt;

&lt;p&gt;Most software architecture today is built around one assumption:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;humans are the primary authors of code&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We expect that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;humans can understand the system over time
&lt;/li&gt;
&lt;li&gt;humans can safely refactor large dependency graphs
&lt;/li&gt;
&lt;li&gt;humans can maintain mental models of complexity
&lt;/li&gt;
&lt;li&gt;humans can coordinate changes across modules
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This works reasonably well when humans are the main drivers of development.&lt;/p&gt;

&lt;p&gt;But with LLMs involved, a different behavior emerges:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;every interaction effectively starts from a partial or reconstructed context&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Even if the full codebase exists, the model operates with limited visibility at any given moment.&lt;/p&gt;

&lt;p&gt;As systems grow, this leads to predictable patterns:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;increasing coupling
&lt;/li&gt;
&lt;li&gt;fragile refactoring
&lt;/li&gt;
&lt;li&gt;hidden dependencies
&lt;/li&gt;
&lt;li&gt;loss of global consistency
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The idea behind Vibe Coding Bible
&lt;/h2&gt;

&lt;p&gt;This led me to a different question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What if we design software assuming AI is the primary code author, and humans are system designers?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That shift changes many assumptions.&lt;/p&gt;

&lt;p&gt;Some familiar practices start to behave differently:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;flexible interfaces become harder to reason about
&lt;/li&gt;
&lt;li&gt;deep abstraction layers introduce fragility
&lt;/li&gt;
&lt;li&gt;refactoring increases cognitive cost
&lt;/li&gt;
&lt;li&gt;shared mutable structures amplify unexpected behavior
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Core principle: nailed interfaces
&lt;/h2&gt;

&lt;p&gt;The central idea is simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;interfaces should not evolve&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Once defined:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;they are never modified
&lt;/li&gt;
&lt;li&gt;they are never extended
&lt;/li&gt;
&lt;li&gt;they are never refactored
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If requirements change, we do not modify the interface.&lt;/p&gt;

&lt;p&gt;We create a new block with a new interface.&lt;/p&gt;

&lt;p&gt;Even if it feels redundant.&lt;/p&gt;

&lt;p&gt;Because AI makes duplication cheap — but coupling remains expensive.&lt;/p&gt;




&lt;h2&gt;
  
  
  Block structure
&lt;/h2&gt;

&lt;p&gt;Every unit of code is a &lt;strong&gt;block&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;interface.py&lt;/code&gt; → immutable contract
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;implementation.py&lt;/code&gt; → AI-generated logic
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;tests.py&lt;/code&gt; → optional generated tests
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Key rule:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;the interface is frozen forever&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;No exceptions.&lt;/p&gt;




&lt;h2&gt;
  
  
  Tree instead of graph
&lt;/h2&gt;

&lt;p&gt;Most real-world systems naturally evolve into dependency graphs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;modules depend on each other
&lt;/li&gt;
&lt;li&gt;dependencies spread in multiple directions
&lt;/li&gt;
&lt;li&gt;small changes produce system-wide effects
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In AI-heavy development, this becomes especially unstable.&lt;/p&gt;

&lt;p&gt;So instead we enforce a simpler structure:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;strict tree hierarchy
&lt;/li&gt;
&lt;li&gt;level-based imports only
&lt;/li&gt;
&lt;li&gt;no cross-branch dependencies
&lt;/li&gt;
&lt;li&gt;no lateral coupling
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is not elegant.&lt;/p&gt;

&lt;p&gt;But it is predictable.&lt;/p&gt;

&lt;p&gt;And predictability matters more than flexibility when AI writes most of the code.&lt;/p&gt;




&lt;h2&gt;
  
  
  No refactoring rule
&lt;/h2&gt;

&lt;p&gt;In this model:&lt;/p&gt;

&lt;p&gt;If something is wrong:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;we do not refactor it
&lt;/li&gt;
&lt;li&gt;we replace it
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If behavior changes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;we do not extend existing modules
&lt;/li&gt;
&lt;li&gt;we create new ones
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If an interface no longer fits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;we do not modify it
&lt;/li&gt;
&lt;li&gt;we define a new block
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At first this feels inefficient.&lt;/p&gt;

&lt;p&gt;But the cost model shifts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;writing new code is cheap
&lt;/li&gt;
&lt;li&gt;managing coupling is expensive
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So we optimize for regeneration instead of evolution.&lt;/p&gt;




&lt;h2&gt;
  
  
  What changes for developers
&lt;/h2&gt;

&lt;p&gt;In this model, developers stop being:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;refactorers
&lt;/li&gt;
&lt;li&gt;dependency graph managers
&lt;/li&gt;
&lt;li&gt;large-codebase navigators
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And become:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;system decomposers
&lt;/li&gt;
&lt;li&gt;interface designers
&lt;/li&gt;
&lt;li&gt;constraint engineers
&lt;/li&gt;
&lt;li&gt;AI operators
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The job shifts from writing code to shaping boundaries.&lt;/p&gt;




&lt;h2&gt;
  
  
  Migration strategy
&lt;/h2&gt;

&lt;p&gt;Existing systems are not migrated directly.&lt;/p&gt;

&lt;p&gt;Instead:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;freeze problematic modules
&lt;/li&gt;
&lt;li&gt;stop modifying legacy code
&lt;/li&gt;
&lt;li&gt;build new AI-native blocks alongside it
&lt;/li&gt;
&lt;li&gt;gradually shift functionality over time
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Legacy code becomes background context, not something to constantly fix.&lt;/p&gt;




&lt;h2&gt;
  
  
  This is not a universal rule
&lt;/h2&gt;

&lt;p&gt;This is an experiment.&lt;/p&gt;

&lt;p&gt;It may not apply to all systems.&lt;/p&gt;

&lt;p&gt;Some domains may still require:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;complex shared state
&lt;/li&gt;
&lt;li&gt;deep optimization
&lt;/li&gt;
&lt;li&gt;tightly coupled systems
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But in many AI-heavy workflows, traditional assumptions start to break down.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why I’m writing this
&lt;/h2&gt;

&lt;p&gt;I call this experiment:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Vibe Coding Bible&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It is not a finished framework.&lt;/p&gt;

&lt;p&gt;It is a set of assumptions I am testing in practice.&lt;/p&gt;




&lt;h2&gt;
  
  
  Related projects
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Programming paradigm for AI-written software:&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/evgeniykormin86-stack/Programming-Paradigm-for-AI-Written-Software" rel="noopener noreferrer"&gt;https://github.com/evgeniykormin86-stack/Programming-Paradigm-for-AI-Written-Software&lt;/a&gt;  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Incident-driven AI system (Golden Armada):&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/evgeniykormin86-stack/golden_armada" rel="noopener noreferrer"&gt;https://github.com/evgeniykormin86-stack/golden_armada&lt;/a&gt;  &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Final thought
&lt;/h2&gt;

&lt;p&gt;The question I’m exploring is simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What does software architecture look like when AI becomes the primary programmer?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is one possible answer.&lt;/p&gt;

&lt;p&gt;Not the final one.&lt;/p&gt;

&lt;p&gt;But a starting point.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>programming</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
