<?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: code plato</title>
    <description>The latest articles on DEV Community by code plato (@codeplato).</description>
    <link>https://dev.to/codeplato</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%2F477442%2F008f628e-ab69-4bd8-940b-682bc1932ce8.png</url>
      <title>DEV Community: code plato</title>
      <link>https://dev.to/codeplato</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/codeplato"/>
    <language>en</language>
    <item>
      <title>Code Review in the AI Era: From Review to Audit</title>
      <dc:creator>code plato</dc:creator>
      <pubDate>Sat, 04 Jul 2026 21:34:10 +0000</pubDate>
      <link>https://dev.to/codeplato/code-review-in-the-ai-era-from-review-to-audit-3e21</link>
      <guid>https://dev.to/codeplato/code-review-in-the-ai-era-from-review-to-audit-3e21</guid>
      <description>&lt;h2&gt;
  
  
  The PR Review Paradox
&lt;/h2&gt;

&lt;p&gt;Programmers may be the most disoriented group of people in this era, and the most disorienting thing a programmer does every day is reviewing PRs.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Agents write code too fast and produce too many lines. Humans can't keep up, so most reviews end with a mechanical click on "Approve."&lt;/li&gt;
&lt;li&gt;Agents rarely make low-level mistakes anymore, so reading their code feels like a waste of time.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fp33v3m0zheonqlmntgr9.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%2Fp33v3m0zheonqlmntgr9.png" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So some people came up with the idea of having one agent review another agent's PR. It doesn't work well. You'll often find that the agent misses the real structural problems, while the issues it does flag are trivial nitpicks — some of them aren't even problems at all.&lt;/p&gt;

&lt;p&gt;Others have built skills to help agents review code better. But think about it the other way around: if we put those rules directly into the project's ABS (Agent Behavior Specification) files and let the agent write compliant code from the start, wouldn't that solve the problem at its root?&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the Problem Lies
&lt;/h2&gt;

&lt;p&gt;PR code review was extremely valuable in the era of hand-written code, because humans make mistakes all the time. Another programmer reading your code could:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Catch bugs in your code&lt;/li&gt;
&lt;li&gt;Get familiar with the project by reading your code&lt;/li&gt;
&lt;li&gt;Spot code smells&lt;/li&gt;
&lt;li&gt;Point out places where your code violates project conventions&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Given how well agents write code today, you almost never find low-level mistakes&lt;/li&gt;
&lt;li&gt;An agent doesn't need to read a particular PR to get familiar with the project&lt;/li&gt;
&lt;li&gt;Agents are bad at spotting code smells in each other's work&lt;/li&gt;
&lt;li&gt;If you set things up properly, the agent loads the project conventions before writing — so compliance issues simply don't arise&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I often say that agent-written code has no small problems, only big ones.&lt;/p&gt;

&lt;p&gt;I've also observed two trends:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Projects are shifting from multi-person maintenance to one person per project. That makes reviewing other people's code hard, because you don't have the cross-project context a meaningful review requires.&lt;/li&gt;
&lt;li&gt;Agent-written PRs keep getting bigger. Past a certain size, reviewing a PR becomes mission impossible.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  A New Kind of Review
&lt;/h2&gt;

&lt;p&gt;So I believe the way we review code needs a revolutionary change in the AI era. Specifically, the following changes.&lt;/p&gt;

&lt;h3&gt;
  
  
  A New Point in Time
&lt;/h3&gt;

&lt;p&gt;One benefit of the old PR review was that people don't share the same information or think the same way, so one person could catch problems another person missed. In agent coding, this asymmetry barely exists — reviewing someone else's PR doesn't buy you much anymore.&lt;/p&gt;

&lt;p&gt;That doesn't mean review is unnecessary. It means we should review the code &lt;strong&gt;before it gets committed&lt;/strong&gt;. The timing has changed. We should call a halt before the agent's spaghetti code gets pushed to the repo, preventing piles of useless code from landing on the server and wasting other engineers' attention.&lt;/p&gt;

&lt;p&gt;You might say this is obvious — of course you look at the code after the agent finishes. Actually, no. You'll find that agents sometimes announce they've finished the code and have already committed and pushed it for you. You need to explicitly stop the agent from auto-committing and auto-pushing. This can be enforced with a commit lock and hooks.&lt;/p&gt;

&lt;p&gt;My own setup is a convention where the agent, after finishing the code, generates a temporary &lt;strong&gt;commit lock&lt;/strong&gt; file called a CR (commit request), and the agent's hooks check for the CR file. If the lock file exists, the commit is rejected. The CR file can only be removed by me manually, or through an agreed-upon protocol. My rule is: only when I say "approve" does the agent delete the CR file and commit the code.&lt;/p&gt;

&lt;h3&gt;
  
  
  A New Standard
&lt;/h3&gt;

&lt;p&gt;In the AI era, the focus of code review should shift from catching small mistakes to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Checking for code smells&lt;/li&gt;
&lt;li&gt;Checking for over-engineering&lt;/li&gt;
&lt;li&gt;Checking for implementations that clash with the project's style&lt;/li&gt;
&lt;li&gt;Checking whether the code actually meets the requirements&lt;/li&gt;
&lt;li&gt;And a new concern: &lt;strong&gt;checking whether the PR is too big&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That last one emerged with agent coding. An oversized PR is a problem in itself. If a PR runs to thousands of lines and can't be trimmed down, the task itself was too big — it should have been split into multiple small, independently verifiable tasks and implemented step by step. A PR should never be too big to review; if it is, that's a code smell in its own right.&lt;/p&gt;

&lt;p&gt;A reasonable PR should focus on one thing, and even if that thing involves a lot of code, the core idea should be simple and easy to grasp. For example, if you batch-modify code that follows a fixed pattern, there may be many changed lines, but the repetition is easy to see. The human brain skips over the repeated parts — they don't burden your thinking or scatter your attention.&lt;/p&gt;

&lt;h3&gt;
  
  
  New Actions
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Reading becomes asking.&lt;/strong&gt; In the old days, reviewing meant going through the code line by line ourselves. Now we should make a habit of asking the agent about its intent and design. Rapid-fire questions are the fastest way to understand the code — and I've found that in the process of answering, the agent often discovers the problems on its own.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fixing code becomes fixing rules.&lt;/strong&gt; When a review uncovers a problem in agent-written code, we should not fix the code by hand. Even if you fix it this time, the agent will make the same mistake next time. Instead, instruct the agent to fix the code — and then instruct the agent to update the rule documents. I call these documents the ABS (Agent Behavior Specification): files like CLAUDE.md, BEST_PRACTICE.md, and so on.&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%2Felrp2ckb5s44i87rlc44.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%2Felrp2ckb5s44i87rlc44.png" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  A New Cadence
&lt;/h3&gt;

&lt;p&gt;We used to require a human approval on every PR before merging. But the situation has changed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Single-person projects are becoming common&lt;/li&gt;
&lt;li&gt;Agents produce code faster than humans can review it&lt;/li&gt;
&lt;li&gt;Given the same rules, an agent can repeatedly deliver the same quality of code for similar requirements&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So we no longer need to review every single change throughout the entire life of a project. Instead:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the early phase of a project, review every change, and gradually build up the rule base&lt;/li&gt;
&lt;li&gt;In the mid-to-late phase, skip review for simple changes — but set a threshold. Once the number of skipped reviews hits the threshold, do a human review to see whether the rules need refinement&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  A New Name: Code Audit
&lt;/h2&gt;

&lt;p&gt;This new way of reviewing has these characteristics:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Full review in the early phase of a project; spot checks once the project matures&lt;/li&gt;
&lt;li&gt;What matters is not guaranteeing the code is correct, but guaranteeing that the way the code is written is compliant&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That sounds a lot like a financial audit. So I think this new way of reviewing project code deserves a better name: the code audit.&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%2Fr3s9ayfelukvqu9e78iq.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%2Fr3s9ayfelukvqu9e78iq.png" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  About the Author
&lt;/h2&gt;

&lt;p&gt;I'm CodePlato.&lt;/p&gt;

&lt;p&gt;I believe human creativity is the true tree of AI Coding. Code and models are only shadows projected onto the walls of the cave.&lt;/p&gt;

&lt;p&gt;X: @codeplato2026&lt;br&gt;
&lt;a href="https://x.com/codeplato2026" rel="noopener noreferrer"&gt;https://x.com/codeplato2026&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>codereview</category>
      <category>agents</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>Money-Saving Tips Every OpenClaw User Should Know</title>
      <dc:creator>code plato</dc:creator>
      <pubDate>Fri, 03 Jul 2026 05:31:22 +0000</pubDate>
      <link>https://dev.to/codeplato/money-saving-tips-every-openclaw-user-should-know-1b6o</link>
      <guid>https://dev.to/codeplato/money-saving-tips-every-openclaw-user-should-know-1b6o</guid>
      <description>&lt;h2&gt;
  
  
  Another AI Horror Story
&lt;/h2&gt;

&lt;p&gt;Like many AI horror stories — except I didn't wake up to a $1,000 bill.&lt;/p&gt;

&lt;p&gt;Last week, I suddenly received an email from OpenAI saying my balance had run out and I needed to top it up. I was startled, because my OpenClaw connects via OAuth — it shouldn't be touching my Credits. But as OpenClaw's token consumption suddenly spiked, it started drawing from my Credit balance. Whether this was caused by OpenClaw's fallback strategy or OpenAI's own fallback mechanism, I'm not entirely sure. Either way, it happened.&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%2Fyznngy198q19mwh3ce9h.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%2Fyznngy198q19mwh3ce9h.png" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My first instinct was to panic — I deleted and reinstalled the entire OpenClaw app, then started a brand new conversation in Discord. That worked, but it was a bit of an overreaction. Today I'll walk you through a technique that every OpenClaw user should know, yet most people never use.&lt;/p&gt;

&lt;h2&gt;
  
  
  Root Cause
&lt;/h2&gt;

&lt;p&gt;Here's what's actually happening. The model itself has no memory. Every time you talk to it, it has no idea who you are, who it is, or what you've discussed before. You need to supply context — telling it who it is, who you are, what you've talked about, and what you need it to do right now. Everything beyond your current message can be called "context." This context is typically maintained by a Harness. Common harnesses include OpenClaw, Hermes Agent, Claude Code, and others.&lt;/p&gt;

&lt;p&gt;"Harness" is a fairly technical term, so most people just call them Agents.&lt;/p&gt;

&lt;h3&gt;
  
  
  Multi-layer Context
&lt;/h3&gt;

&lt;p&gt;Context itself is layered:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;App layer&lt;/strong&gt;: This layer records who you are and what the app is. Ask "Who are you?" in ChatGPT and it'll say it's ChatGPT. Ask the same in OpenClaw and it'll say it's OpenClaw — even if OpenClaw is running on an OpenAI model under the hood.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Session layer&lt;/strong&gt;: This is the context for your current chat. That's why something you said in one chat isn't necessarily recognized in another. The upside is isolation — you can have one chat where it plays a lawyer and another where it acts as a therapist.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkxaa9uyiudafikwgevrg.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%2Fkxaa9uyiudafikwgevrg.png" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At the app layer, OpenClaw injects a large amount of context on your behalf, including but not limited to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AGENTS.md&lt;/li&gt;
&lt;li&gt;SOUL.md&lt;/li&gt;
&lt;li&gt;USER.md&lt;/li&gt;
&lt;li&gt;MEMORY.md&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Context Compression
&lt;/h3&gt;

&lt;p&gt;Here's the problem. As the app is used over time, and as individual chats run longer, your context keeps growing — until costs start to spike. Sometimes the agent triggers Context Compression to relieve the pressure. But you'll quickly notice the agent seems to have gotten dumber. It hasn't completely forgotten your instructions; it just remembers some things and misses others. That's because compression loses detail from your earlier instructions. And even after compression, the context can still be enormous.&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%2Fo8cmavidn59p7tlqqjca.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%2Fo8cmavidn59p7tlqqjca.png" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So if compression isn't enough, what can we do?&lt;/p&gt;

&lt;h2&gt;
  
  
  Solutions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Build Good Habits
&lt;/h3&gt;

&lt;p&gt;First, ask yourself whether you're relying on a single chat to handle repetitive tasks. For example, you might have opened one chat and kept asking it to translate documents or visit certain websites on a schedule. Over time, you dread closing that chat because rebuilding it feels like too much work.&lt;/p&gt;

&lt;p&gt;If that sounds familiar, it's time to build a better habit:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Whenever something repeats more than three times, distill it into a Skill.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If that feels too involved, you can switch to Hermes Agent — now you understand why it's become so popular. That said, I still prefer manually crafting my own Skills in OpenClaw.&lt;/p&gt;

&lt;p&gt;Also make a habit of locking long-term information into preloaded context files. For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If you've designed a persona you love, make sure those details are in SOUL.md.&lt;/li&gt;
&lt;li&gt;If you want certain personal information — like your address or phone number — to be remembered long-term without having to repeat it, make sure it's recorded in USER.md.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Reset Context
&lt;/h3&gt;

&lt;p&gt;Once you've built those habits, you can confidently reset your context whenever costs start to spike again. The reset has two steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;App layer&lt;/strong&gt;: Clear MEMORY.md and the memory folder. Since your habits have already been distilled into Skills, this memory is usually not critical and can be safely deleted.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Session layer&lt;/strong&gt;: When you finish a major task, or when a chat has been running for over a week, use &lt;code&gt;/new&lt;/code&gt; to start a fresh chat.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That clears the two largest components of your context.&lt;/p&gt;

&lt;h3&gt;
  
  
  Benefits
&lt;/h3&gt;

&lt;p&gt;Doing this has two direct benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dramatically reduces token consumption&lt;/strong&gt;, lowering your usage costs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reduces OpenClaw's error rate&lt;/strong&gt;. The cleaner the context, the easier it is for the model to focus on the current task — fewer omissions, fewer misunderstandings. Fewer do-overs means higher effective productivity.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzrrkocw8v95dtdq9k0k1.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%2Fzrrkocw8v95dtdq9k0k1.png" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  About the Author
&lt;/h2&gt;

&lt;p&gt;I'm CodePlato.&lt;/p&gt;

&lt;p&gt;I believe human creativity is the true tree of AI Coding. Code and models are only shadows projected onto the walls of the cave.&lt;/p&gt;

&lt;p&gt;X: @codeplato2026&lt;br&gt;
&lt;a href="https://x.com/codeplato2026" rel="noopener noreferrer"&gt;https://x.com/codeplato2026&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>openclaw</category>
      <category>productivity</category>
      <category>llm</category>
    </item>
    <item>
      <title>From Code to ABS: A New Development Paradigm for the AI Era</title>
      <dc:creator>code plato</dc:creator>
      <pubDate>Mon, 15 Jun 2026 23:09:32 +0000</pubDate>
      <link>https://dev.to/codeplato/from-code-to-abs-a-new-development-paradigm-for-the-ai-era-1gob</link>
      <guid>https://dev.to/codeplato/from-code-to-abs-a-new-development-paradigm-for-the-ai-era-1gob</guid>
      <description>&lt;h2&gt;
  
  
  Perspectives
&lt;/h2&gt;

&lt;p&gt;There are roughly three schools of thought on AI-assisted programming today:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Distrust AI entirely&lt;/strong&gt; — use it only as a code snippet generator. Copy the output into your project, but keep your development workflow exactly as it was before.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trust AI completely&lt;/strong&gt; — pure Vibe Coding. Never read the generated code; just keep feeding in best practices you find online and increasingly detailed acceptance criteria. As long as the criteria pass and enough constraints are in place, you get a working product.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Partial trust&lt;/strong&gt; — hand all code-writing to AI, but not design or testing. Stay involved through Ask mode to guide architecture, or have the AI scaffold tests while you write the actual test cases.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Which of these is actually the right direction?&lt;/p&gt;

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

&lt;h2&gt;
  
  
  The Confusion
&lt;/h2&gt;

&lt;p&gt;In this era, with the rise of Loop Engineering, source code no longer seems to belong to the programmer. UI design no longer seems to belong to the designer; test scripts no longer belong to the QA engineer; even requirements docs are no longer fully owned by the product manager.&lt;/p&gt;

&lt;p&gt;And yet, without any human involvement at all, it's genuinely difficult to ship a usable product. So what work is left for humans? Where exactly is the gap between the human brain and the model?&lt;/p&gt;

&lt;h2&gt;
  
  
  A New Paradigm
&lt;/h2&gt;

&lt;h3&gt;
  
  
  From Circuit Boards to Integrated Circuits
&lt;/h3&gt;

&lt;p&gt;My undergraduate degree was actually in electrical engineering, not computer science. Early circuit design meant hand-soldering discrete components onto boards — transistors and other logic-capable devices included. Then integrated circuits arrived and all that low-level logic got encapsulated. Engineers started writing HDL, and complex circuit structures were generated automatically.&lt;/p&gt;

&lt;p&gt;No one cares anymore how one transistor is wired to another. Our thinking shifted to a higher level of abstraction — away from the connections between components, toward bigger, more abstract problems.&lt;/p&gt;

&lt;h3&gt;
  
  
  From Code to ABS
&lt;/h3&gt;

&lt;h4&gt;
  
  
  What Is ABS?
&lt;/h4&gt;

&lt;p&gt;ABS stands for &lt;strong&gt;Agent Behavior Specification&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Files like &lt;code&gt;AGENTS.md&lt;/code&gt;, &lt;code&gt;CLAUDE.md&lt;/code&gt;, and &lt;code&gt;MEMORY.md&lt;/code&gt; that you see in projects today are, at their core, files that specify how an Agent should behave. They all belong to ABS.&lt;/p&gt;

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

&lt;h4&gt;
  
  
  How to Practice It
&lt;/h4&gt;

&lt;p&gt;An engineer's job should not be writing code line by line — nor auditing code line by line. But it's also not about ignoring the Agent's implementation entirely and only checking the final result. Engineers still need to retain the ability to dive into details. You'll still do deep code reviews during early project phases or at certain critical milestones.&lt;/p&gt;

&lt;p&gt;But the &lt;em&gt;nature&lt;/em&gt; of that review has changed. In the past, you reviewed code in order to ship. Now you review code in order to &lt;em&gt;calibrate the Agent&lt;/em&gt;. After reading it, instead of immediately fixing code, docs, or config, you ask yourself: Why did the Agent do this? What rule was missing? What experience deserves to be distilled?&lt;/p&gt;

&lt;p&gt;Then you let the Agent make the fix while you draw the lesson and write it into the ABS. For example:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Areas for improvement go into a best-practices file, like &lt;code&gt;BEST_PRACTICES.md&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Mistakes that must never be repeated go into a prohibitions file, like &lt;code&gt;NEVER.md&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Architectural adjustments go into an architecture definition, like &lt;code&gt;ARCHITECTURE.md&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Other long-term rules continue to accumulate in the appropriate ABS files.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In the AI era, an engineer's most important output is no longer the code itself — it's the ABS files. &lt;strong&gt;ABS is the new source code. Code is just the compiled output of ABS.&lt;/strong&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Single File vs. Multiple Files
&lt;/h4&gt;

&lt;p&gt;Is one &lt;code&gt;CLAUDE.md&lt;/code&gt; or &lt;code&gt;AGENTS.md&lt;/code&gt; enough, or should you split things into &lt;code&gt;ARCHITECTURE.md&lt;/code&gt;, &lt;code&gt;STACK.md&lt;/code&gt;, &lt;code&gt;NEVER.md&lt;/code&gt;, and so on? The community already has many different approaches. Which is better?&lt;/p&gt;

&lt;p&gt;Once you accept that ABS is the new source code, this question answers itself.&lt;/p&gt;

&lt;p&gt;First, which granularity is better? Multiple files. For exactly the same reasons as traditional software engineering: clearer separation of concerns, better support for team collaboration, easier maintenance, easier debugging, and fewer conflicts.&lt;/p&gt;

&lt;p&gt;Second, which naming convention is better — &lt;code&gt;STACK.md&lt;/code&gt; or &lt;code&gt;ARCHITECTURE.md&lt;/code&gt;? It doesn't really matter. Just like software development today, what matters isn't the file name — it's whether you've achieved a sensible division of responsibilities. You need to know which content belongs at the architecture layer, which belongs at the best-practices layer, and which belongs at the prohibitions layer. The specific file names are secondary. The organizational thinking is what counts.&lt;/p&gt;

&lt;h3&gt;
  
  
  A Day in the Life
&lt;/h3&gt;

&lt;p&gt;So what does an engineer's workday actually look like in the AI era? The following scenario might give you a feel for where software development is headed.&lt;/p&gt;

&lt;p&gt;Tom arrives at the office at 9 a.m., makes a cup of coffee, and sits down to start his day.&lt;/p&gt;

&lt;h4&gt;
  
  
  The Orchestration Panel
&lt;/h4&gt;

&lt;p&gt;He opens the Agentic Development Workflow panel (the name is long enough to be self-explanatory). First, he checks the status of each Agent. Which ones are blocked? How many PRs did each Agent submit overnight? Which ones are showing a noticeable drop in throughput? These signals set the agenda for his day.&lt;/p&gt;

&lt;h4&gt;
  
  
  Editing the ABS
&lt;/h4&gt;

&lt;p&gt;He spots an Agent that's stuck — it needs human-in-the-loop support. He resolves the issue and writes the solution into &lt;code&gt;NEVER.md&lt;/code&gt; so other Agents don't run into the same problem later.&lt;/p&gt;

&lt;p&gt;After unblocking everything, he reviews yesterday's monitoring data. He notices one Agent wrote hundreds of lines of unit tests for an extremely simple feature. Something feels off. He reads the tests carefully and finds the Agent produced a brittle, implementation-coupled test suite — heavily mocked, tightly bound to internal details.&lt;/p&gt;

&lt;p&gt;He asks the Agent to rewrite the tests, this time leaning toward the Chicago school rather than the London school. Then he adds the lesson to &lt;code&gt;BEST_PRACTICES.md&lt;/code&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  Agent Behavior Monitoring
&lt;/h4&gt;

&lt;p&gt;The system panel pings him with a notification: one Agent has been running unattended for 10 consecutive iterations. Based on the threshold he configured, it's time to switch to human-assisted mode.&lt;/p&gt;

&lt;p&gt;In this mode, the Agent no longer auto-commits or auto-reviews code — every step requires human sign-off. Reviewing the recent work log, he spots early signs of architectural drift. Suspecting other Agents may have similar issues, he audits a few others and updates &lt;code&gt;ARCHITECTURE.md&lt;/code&gt; and &lt;code&gt;BEST_PRACTICES.md&lt;/code&gt; accordingly.&lt;/p&gt;

&lt;h4&gt;
  
  
  Tackling a Hard Problem
&lt;/h4&gt;

&lt;p&gt;In the afternoon, his manager hands him a particularly difficult task — a large-scale architectural change that the model can't yet handle on its own.&lt;/p&gt;

&lt;p&gt;He switches the Agent into human-assisted mode. Over the next few hours, he and the Agent work together on the architecture design, solution validation, and implementation. Meanwhile, the more routine tasks — bug fixes, UI tweaks, config updates — continue to run autonomously on other Agents.&lt;/p&gt;

&lt;p&gt;And that's the day.&lt;/p&gt;

&lt;p&gt;Tom shuts his laptop and heads home.&lt;/p&gt;

&lt;p&gt;His Agents keep working.&lt;/p&gt;

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

</description>
      <category>ai</category>
      <category>programming</category>
      <category>softwareengineering</category>
      <category>agentdrivendevelopment</category>
    </item>
    <item>
      <title>Do We Still Need to Practice Programming in the AI Era?</title>
      <dc:creator>code plato</dc:creator>
      <pubDate>Mon, 25 May 2026 22:25:24 +0000</pubDate>
      <link>https://dev.to/codeplato/do-we-still-need-to-practice-programming-in-the-ai-era-4bif</link>
      <guid>https://dev.to/codeplato/do-we-still-need-to-practice-programming-in-the-ai-era-4bif</guid>
      <description>&lt;p&gt;"Vibe Coding" is having a moment. So — do we still need to practice programming?&lt;/p&gt;

&lt;p&gt;My answer is yes.&lt;/p&gt;

&lt;p&gt;I've written before about using AI to distill reading material and quickly grasp the structure of an article. But a few fundamental realities won't change just because AI showed up.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;The rate at which the human brain absorbs knowledge hasn't changed. No matter how fast AI technology advances, your personal learning speed doesn't automatically accelerate with it. There are no real shortcuts to learning.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;AI was trained on both good code and bad code. Bad code isn't always incorrect code — it can simply be code that smells, is hard to maintain, or has a chaotic architecture. If you can't spot the problem yourself, AI often won't spot it either.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Example 1
&lt;/h2&gt;

&lt;p&gt;Experienced developers and beginners literally see different things when they look at the same code.&lt;/p&gt;

&lt;p&gt;Imagine you're working in React and you come across this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;phone&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;iPhone&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;price&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;payInFull&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;monthlyFin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;99&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Your product manager asks you to add a "snapshot page" — a page that displays the product's current state frozen at a point in time, so that even if the product data changes later, the snapshot stays the same.&lt;/p&gt;

&lt;p&gt;AI quickly generates this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;phone&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;iPhone&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;price&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;payInFull&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;monthlyFin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;99&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Snapshot&lt;/span&gt; &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="nx"&gt;phone&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You see &lt;code&gt;{...phone}&lt;/code&gt; and think: "Got it — that's an object copy."&lt;/p&gt;

&lt;p&gt;A short while later, customer support files a bug: after the price is updated in the parent component, the price on the snapshot page updates too.&lt;/p&gt;

&lt;p&gt;You're baffled. This shouldn't be happening.&lt;/p&gt;

&lt;p&gt;After digging in, you realize:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Snapshot&lt;/span&gt; &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="nx"&gt;phone&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;is not the same as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;snapshot&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{...&lt;/span&gt;&lt;span class="nx"&gt;phone&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The former is just React's props spread syntax sugar.&lt;/p&gt;

&lt;p&gt;So you update the code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;snapshot&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{...&lt;/span&gt;&lt;span class="nx"&gt;phone&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Snapshot&lt;/span&gt; &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="nx"&gt;snapshot&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Still broken.&lt;/p&gt;

&lt;p&gt;Eventually you find the fix:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;snapshot&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;structuredClone&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;phone&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Someone who has been burned by this before — or who genuinely studied JavaScript's object reference model — would have spotted the problem immediately. Someone who hasn't would go down the same rabbit hole.&lt;/p&gt;

&lt;h2&gt;
  
  
  Example 2
&lt;/h2&gt;

&lt;p&gt;Have you ever felt completely fluent while watching a tutorial, only to draw a total blank the moment you sit down to write the code yourself?&lt;/p&gt;

&lt;p&gt;I was working through a Data Science course recently. The material wasn't particularly complex for a software engineer:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;top1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Table&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;read_table&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;path_data&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;top_movies_2017.csv&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But when I sat down to do the assignment — which asked me to load &lt;code&gt;top_movies_2017.csv&lt;/code&gt; — my mind went completely empty.&lt;/p&gt;

&lt;p&gt;I tried things like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;read_csv&lt;/span&gt;
&lt;span class="n"&gt;import_csv&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;…and various other guesses.&lt;/p&gt;

&lt;p&gt;Strangely, I had seen &lt;code&gt;Table.read_table&lt;/code&gt; multiple times in the course material.&lt;/p&gt;

&lt;p&gt;What I realized: the human brain doesn't learn purely through reading. Learning is a multi-sensory process — it involves sound, touch, the frustration of hitting a wall, the cycle of trying and failing. Those experiences are part of the memory itself.&lt;/p&gt;

&lt;p&gt;Knowing something intellectually is not the same as having actually learned it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;AI can help you extract an outline, surface key points, and let you skip over sections that aren't relevant to you. In that sense it's a useful map.&lt;/p&gt;

&lt;p&gt;But be clear-eyed about what a map is and isn't.&lt;/p&gt;

&lt;p&gt;If your underlying ability to absorb knowledge hasn't actually gotten faster, don't be fooled by the optimistic claim that "anyone can code in the AI era."&lt;/p&gt;

&lt;p&gt;"Anyone can generate code" is not the same as "anyone can build a maintainable commercial product."&lt;/p&gt;

&lt;p&gt;AI can help you go faster.&lt;/p&gt;

&lt;p&gt;But it cannot replace the process of genuinely understanding systems, code, and engineering complexity. That part still takes you.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>vibecoding</category>
      <category>learning</category>
    </item>
    <item>
      <title>what-is-context-governance</title>
      <dc:creator>code plato</dc:creator>
      <pubDate>Tue, 19 May 2026 20:58:30 +0000</pubDate>
      <link>https://dev.to/codeplato/what-is-context-governance-nj</link>
      <guid>https://dev.to/codeplato/what-is-context-governance-nj</guid>
      <description>&lt;p&gt;Context Governance is a part of Context Engineering. In my opinion, it's the most interesting part.&lt;/p&gt;

&lt;p&gt;That might sound abstract at first — I felt the same way. But once you look at how a few mainstream AI agents handle their context governance, the concept becomes immediately intuitive.&lt;/p&gt;

&lt;p&gt;In this post, I'll compare four agents' approaches to context governance, walking from simple to complex, from basic to advanced.&lt;/p&gt;




&lt;h2&gt;
  
  
  Codex
&lt;/h2&gt;

&lt;p&gt;First up is OpenAI's Codex. Ironically, despite OpenAI being the first company to build a large language model, their agent product is the newest of the bunch.&lt;/p&gt;

&lt;p&gt;And fittingly, its context governance is also the simplest. Inside the &lt;code&gt;.codex/&lt;/code&gt; directory, there's a file called &lt;code&gt;AGENTS.md&lt;/code&gt;. Here's a minimal example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# Repository Guidelines&lt;/span&gt;

&lt;span class="gu"&gt;## Project Structure&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="sb"&gt;`src/`&lt;/span&gt; — application code
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="sb"&gt;`tests/`&lt;/span&gt; — test code

&lt;span class="gu"&gt;## Common Commands&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Run tests: &lt;span class="sb"&gt;`npm test`&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Run linter: &lt;span class="sb"&gt;`npm run lint`&lt;/span&gt;

&lt;span class="gu"&gt;## Coding Conventions&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Prefer TypeScript
&lt;span class="p"&gt;-&lt;/span&gt; Avoid default exports
&lt;span class="p"&gt;-&lt;/span&gt; Use async/await instead of raw Promises
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Before starting any work, Codex reads this file. You maintain it manually, adding rules over time.&lt;/p&gt;

&lt;p&gt;Beyond this file, there's a folder: &lt;code&gt;~/.codex/memories/&lt;/code&gt; — as the name suggests, it's the "memory." Codex writes to it automatically.&lt;/p&gt;

&lt;p&gt;The rough structure looks like this:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Contents&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;summaries&lt;/td&gt;
&lt;td&gt;Session summaries&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;durable&lt;/td&gt;
&lt;td&gt;Long-term stable memories&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;recent&lt;/td&gt;
&lt;td&gt;Recent context&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;evidence&lt;/td&gt;
&lt;td&gt;Source evidence&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;As you can see, Codex's context governance is quite lightweight. At its core, it's just:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One rules file&lt;/li&gt;
&lt;li&gt;One auto-managed memory directory&lt;/li&gt;
&lt;/ul&gt;

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




&lt;h2&gt;
  
  
  Claude Code
&lt;/h2&gt;

&lt;p&gt;Claude Code takes a different approach.&lt;/p&gt;

&lt;p&gt;The officially supported mechanisms are similar to Codex:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;~/.claude/projects/&amp;lt;project&amp;gt;/memory/&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Just these two. The names speak for themselves. But the Claude Code community has expanded this significantly over time, evolving into something like:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;th&gt;Manual / Auto&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;File&lt;/td&gt;
&lt;td&gt;Project rules, agent behavior&lt;/td&gt;
&lt;td&gt;Manual&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;MEMORY.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;File&lt;/td&gt;
&lt;td&gt;Long-term memory, preferences, lessons&lt;/td&gt;
&lt;td&gt;Semi-auto&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;NOTES.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;File&lt;/td&gt;
&lt;td&gt;Scratch notes, working scratchpad&lt;/td&gt;
&lt;td&gt;Manual&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;DECISIONS.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;File&lt;/td&gt;
&lt;td&gt;Key architecture / tech decision history&lt;/td&gt;
&lt;td&gt;Manual&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ARCHITECTURE.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;File&lt;/td&gt;
&lt;td&gt;System structure, module relationships, data flow&lt;/td&gt;
&lt;td&gt;Manual&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;LEARNINGS.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;File&lt;/td&gt;
&lt;td&gt;Lessons learned, pitfall records&lt;/td&gt;
&lt;td&gt;Semi-auto&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;TASKS.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;File&lt;/td&gt;
&lt;td&gt;Current task list, TODOs&lt;/td&gt;
&lt;td&gt;Manual&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SESSION.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;File&lt;/td&gt;
&lt;td&gt;Current session work log&lt;/td&gt;
&lt;td&gt;Semi-auto&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;docs/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Folder&lt;/td&gt;
&lt;td&gt;Long-form context documents&lt;/td&gt;
&lt;td&gt;Manual&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;memory/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Folder&lt;/td&gt;
&lt;td&gt;Categorized memory storage&lt;/td&gt;
&lt;td&gt;Semi-auto&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;prompts/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Folder&lt;/td&gt;
&lt;td&gt;Prompt templates, workflow prompts&lt;/td&gt;
&lt;td&gt;Manual&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;.cursorrules&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;File&lt;/td&gt;
&lt;td&gt;Cursor-compatible rules&lt;/td&gt;
&lt;td&gt;Manual&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This is far more complex than Codex. But notice: a large number of these files require manual upkeep. And the whole structure looks a lot like the project wiki we'd write for a traditional software project.&lt;/p&gt;

&lt;p&gt;That's actually the key insight: for an agent to work well, it should browse the project wiki first — just like we would. People are now turning wiki documents into context Markdown files. With that framing, it all makes sense. Claude Code, grounded in these context documents, increasingly works like a real developer.&lt;/p&gt;




&lt;h2&gt;
  
  
  Open Claw
&lt;/h2&gt;

&lt;p&gt;Open Claw is positioned differently from Claude Code — it leans more toward a life assistant than a coding tool. The community-extended Claude Code context system requires managing too many files. Unlike Claude Code's typical developer audience, Open Claw's users are more general. Many users never directly edit Open Claw's context files — some don't even know they need to.&lt;/p&gt;

&lt;p&gt;Yet Open Claw's context design is actually more "agent-native" than the community Claude Code setup. The latter still carries a strong human project-management mindset. But for an agent, you don't necessarily need that many separate documents.&lt;/p&gt;

&lt;p&gt;Open Claw's context governance centers on "persona" and "character." It organizes context into these files:&lt;/p&gt;

&lt;h3&gt;
  
  
  Core Instruction Layer (static, manually maintained)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;SOUL.md&lt;/code&gt;&lt;/strong&gt; — Personality, values, boundaries. Answers "who are you." Defines tone, character, hard constraints.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;AGENTS.md&lt;/code&gt;&lt;/strong&gt; — Operational procedures and rules. Answers "what you do and how." The largest and most important file; holds complex workflows and step-by-step instructions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;USER.md&lt;/code&gt;&lt;/strong&gt; — User profile. Your name, timezone, preferences, work background. The personalization layer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;IDENTITY.md&lt;/code&gt;&lt;/strong&gt; — Structured identity record (name, role, goals, tone). For consistently re-applying a known persona. (Personally, I find this slightly redundant.)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;TOOLS.md&lt;/code&gt;&lt;/strong&gt; — Tool documentation. Doesn't control permissions (that's config's job) — it tells the agent how to use the tools it already has.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Automation Layer
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;HEARTBEAT.md&lt;/code&gt;&lt;/strong&gt; — Scheduled tasks, effectively a natural-language cron. E.g., "check every 30 minutes," "generate weekly report every Monday at 8am."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;BOOTSTRAP.md&lt;/code&gt;&lt;/strong&gt; — First-run initialization script. Automatically deletes itself after setup.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;BOOT.md&lt;/code&gt;&lt;/strong&gt; — Hook that runs on every startup.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Memory Layer
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;MEMORY.md&lt;/code&gt;&lt;/strong&gt; — Long-term memory. Persistent facts, preferences, decision summaries — effective across weeks and months.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;memory/YYYY-MM-DD.md&lt;/code&gt;&lt;/strong&gt; — Daily notes. Today's and yesterday's notes load automatically; older entries are retrieved via &lt;code&gt;memory_search&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;DREAMS.md&lt;/code&gt;&lt;/strong&gt; — Diary of the dreaming system, logging the "promotion" of short-term memories to long-term. An experimental feature.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Open Claw is already significantly more sophisticated than the previous two systems. When you use it, you can noticeably feel that it's "smarter."&lt;/p&gt;




&lt;h2&gt;
  
  
  Hermes Agent
&lt;/h2&gt;

&lt;p&gt;Now for the main event. If you don't understand context governance, Hermes Agent might seem similar to Open Claw. But notice: Open Claw still has many files that need manual maintenance.&lt;/p&gt;

&lt;p&gt;Even I — after using Open Claw for a while — only recently realized those files need human upkeep. The result: many of the context structures Open Claw designed were never actually put to use.&lt;/p&gt;

&lt;p&gt;Hermes Agent's context governance differs from both Open Claw and Claude Code. Its core design philosophy is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Self-evolution" — the agent writes its own memories and skills.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The entire system lives under &lt;code&gt;~/.hermes/&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Identity Layer (static)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;SOUL.md&lt;/code&gt;&lt;/strong&gt; — The first slot in the system prompt. Defines personality, tone, values, behavioral boundaries. This is global, loaded from &lt;code&gt;HERMES_HOME&lt;/code&gt;. You can still manually edit this file.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Project Context Layer (priority-ordered, only the first match loads)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;.hermes.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AGENTS.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.cursorrules&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;First match wins. This means Hermes is natively compatible with both Claude Code and Cursor project config files.&lt;/p&gt;

&lt;h3&gt;
  
  
  Memory Layer (three tiers, agent-maintained)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;MEMORY.md&lt;/code&gt;&lt;/strong&gt; — Long-term memory. Stores environment info, project conventions, tool usage experience.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;USER.md&lt;/code&gt;&lt;/strong&gt; — User profile. Stores your name, communication preferences, skill level. Note: this time &lt;code&gt;USER.md&lt;/code&gt; is automatically maintained by the agent.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;state.db&lt;/code&gt;&lt;/strong&gt; — A SQLite database with FTS5 full-text indexing, storing all conversation history. The agent doesn't load everything by default — it retrieves on demand via &lt;code&gt;session_search&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Memory has entered the database era. Only a database can truly support long-horizon context retrieval.&lt;/p&gt;

&lt;h3&gt;
  
  
  Skill Layer (Hermes' most distinctive feature)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;skills/&lt;/code&gt; directory&lt;/strong&gt; — Each skill is its own folder containing a &lt;code&gt;SKILL.md&lt;/code&gt; (with YAML frontmatter) and optional templates and scripts.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The key difference: skills are not written by humans. After completing a non-trivial task, the agent creates skills on its own via the &lt;code&gt;skill_manage&lt;/code&gt; tool. Similarly, memory no longer relies primarily on human maintenance — the agent edits &lt;code&gt;MEMORY.md&lt;/code&gt; and &lt;code&gt;USER.md&lt;/code&gt; itself between conversations. And skills are loaded on demand: unused skills never enter the context.&lt;/p&gt;

&lt;p&gt;This is already approaching true "automated context governance."&lt;/p&gt;

&lt;h3&gt;
  
  
  Scheduling Layer
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;cron jobs&lt;/strong&gt; — Scheduled tasks, similar to Open Claw's &lt;code&gt;HEARTBEAT.md&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At this point, context governance isn't just more complex — it's starting to run itself.&lt;/p&gt;




&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;Whether an AI can actually get work done, and how well it does, is no longer just a question of which model you use. In many cases, better context governance improves agent productivity more than upgrading to a stronger model.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Electronic Brain
&lt;/h3&gt;

&lt;p&gt;This raises an interesting question: context is effectively the agent's "electronic brain." The longer you use an agent, the more that accumulated context becomes uniquely &lt;em&gt;it&lt;/em&gt;. As long as the context survives, even if you swap out the "shell," your assistant is still your assistant. If an agent crashes and needs to be reinstalled, or you want to migrate to a different platform, moving the context along should theoretically keep your assistant alive.&lt;/p&gt;

&lt;p&gt;This opens a new question: how do you safely migrate context?&lt;/p&gt;

&lt;p&gt;The problem today is that file names, structures, and formats vary wildly across platforms. Context migration is a mess. I believe a more unified, standardized context protocol will emerge. And "context governance" will gradually become one of the core capabilities of any AI agent worth using.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>contextengineering</category>
      <category>contextgovernance</category>
    </item>
    <item>
      <title>How to Read Technical Docs in the AI Era: Distilled Reading</title>
      <dc:creator>code plato</dc:creator>
      <pubDate>Sat, 16 May 2026 23:15:14 +0000</pubDate>
      <link>https://dev.to/codeplato/how-to-read-technical-docs-in-the-ai-era-distilled-reading-194p</link>
      <guid>https://dev.to/codeplato/how-to-read-technical-docs-in-the-ai-era-distilled-reading-194p</guid>
      <description>&lt;h2&gt;
  
  
  The Unfinished Docs Problem
&lt;/h2&gt;

&lt;p&gt;We're often told to read more technical documentation. But the reality I've encountered is: some docs are so long that reading them for too long leads to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Drowsiness and declining efficiency&lt;/li&gt;
&lt;li&gt;Getting interrupted by something else midway&lt;/li&gt;
&lt;li&gt;Getting pulled into another article by an interesting reference — and that article is just as long. I've done the math: reading all of them is simply not feasible; the time cost is too high.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The result? My browser perpetually has dozens of half-read technical article tabs open, and I can't bring myself to close them. Sometimes I save them to bookmarks. But that doesn't solve the root problem — it just makes the bookmarks folder grow and grow. The bookmarks folder becomes one enormous todo list.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Reading Bottleneck
&lt;/h2&gt;

&lt;p&gt;This pile of accumulated technical docs weighs on me. It makes me feel guilty, like a form of technical debt in my mind. I keep telling myself I'm not trying hard enough — that's why I haven't finished reading them.&lt;/p&gt;

&lt;p&gt;But today I realized: finishing all those technical docs is simply impossible. Because:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Their length means reading them will inevitably consume far more time than I can reasonably afford.&lt;/li&gt;
&lt;li&gt;Docs spawn more docs. This process never stops.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Just as technical systems have bottlenecks, I call this the &lt;strong&gt;reading bottleneck&lt;/strong&gt;. It's a problem that requires a logical-level solution, not just brute-force effort.&lt;/p&gt;

&lt;p&gt;The essence of the bottleneck is that both time and attention are finite resources. Time, as a unit, is too abstract — it doesn't capture the variability in how fast we actually read. So I prefer to use &lt;strong&gt;attention&lt;/strong&gt; as the unit of measure. Think of human attention as a kind of token: your &lt;strong&gt;Attention Token&lt;/strong&gt;, or &lt;strong&gt;AT&lt;/strong&gt;. Strong focus generates an A.T. Field (LOL). Once it's depleted, sleep is the only way to recharge.&lt;/p&gt;

&lt;p&gt;This reading bottleneck is fundamentally:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Total time to read all docs &amp;gt; Your available attention&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Distilled Reading
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Everything Can Be Distilled
&lt;/h3&gt;

&lt;p&gt;Here's something I realized: even though I've only skimmed most of those technical docs, I've still been doing solid technical work. Some docs were even obsolete before I got around to reading them. Most of the information in those docs doesn't need to be memorized — I just need to know it exists, like a dictionary I can look things up in.&lt;/p&gt;

&lt;p&gt;This even applies to docs that are already summaries or digests. They can be distilled further. A distilled piece of text can be distilled again — down to a single sentence, if needed. The distillation process loses information, but that loss is acceptable and expected.&lt;/p&gt;

&lt;h3&gt;
  
  
  LLM-Assisted Distillation
&lt;/h3&gt;

&lt;p&gt;In the age of AI-assisted programming, a developer's most valuable resource is attention.&lt;/p&gt;

&lt;p&gt;When my attention starts to fade, I can use an LLM to summarize the rest of an article. After the LLM reads and condenses it, I review the outline first, then ask follow-up questions on the parts I care about.&lt;/p&gt;

&lt;p&gt;Taking it further: why not have the LLM produce a short outline from the very beginning? I read the outline, then decide: do I continue reading, or do I move on? If I continue, I can choose between reading every line carefully or zooming in on the sections that matter most to me.&lt;/p&gt;

&lt;h3&gt;
  
  
  Don't Wander Off
&lt;/h3&gt;

&lt;p&gt;When you come across an interesting concept while reading, resist the urge to Google it. Here's what that behavior chain looks like:&lt;/p&gt;

&lt;p&gt;Search keyword → See search results page → Click a result → Read that page&lt;/p&gt;

&lt;p&gt;Google's search result format per entry:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;LOGO: Site name
One-line page description (not necessarily the title)
2-3 lines of short preview
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You burn attention scanning each result. Then you open a new, visually busy page and burn more attention locating the thing you actually wanted. Other elements on that page may also consume your attention.&lt;/p&gt;

&lt;p&gt;So: when you encounter an interesting concept, don't immediately Google it.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Ask the AI directly — let it find what you're looking for&lt;/li&gt;
&lt;li&gt;Ask it to include links as supporting evidence&lt;/li&gt;
&lt;li&gt;You can click the links to verify. If a link is broken, tell the AI to check the links itself before responding, filtering out dead ones&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is what I call &lt;strong&gt;Distilled Reading&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Verification
&lt;/h2&gt;

&lt;p&gt;We need a way to verify this method — otherwise it can't be falsified, and anything that can't be falsified is pseudoscience. If this is just me talking nonsense, that should be provable. If the method doesn't work, it's wasting your time.&lt;/p&gt;

&lt;p&gt;Verification dimensions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The number of open technical doc tabs in your browser should decrease&lt;/li&gt;
&lt;li&gt;The number of unread articles in your bookmarks should decrease, or be archived&lt;/li&gt;
&lt;li&gt;At the end of the day, you should feel that you actually accomplished your planned reading — and that the guilt has eased (admittedly subjective, and a bit pseudoscientific, but that's fine)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Use these same criteria to evaluate whether this method works for you — and decide whether to trust me and change your reading habits, or conclude that this is all bullshit. Either way, you've taken an important step: you've personally tested how AI can change how you live. That's valuable, regardless of the outcome.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>reading</category>
      <category>methodology</category>
    </item>
    <item>
      <title>How to Interview Candidates in the AI Era</title>
      <dc:creator>code plato</dc:creator>
      <pubDate>Fri, 15 May 2026 03:46:47 +0000</pubDate>
      <link>https://dev.to/codeplato/how-to-interview-candidates-in-the-ai-era-4cpn</link>
      <guid>https://dev.to/codeplato/how-to-interview-candidates-in-the-ai-era-4cpn</guid>
      <description>&lt;h2&gt;
  
  
  Background
&lt;/h2&gt;

&lt;p&gt;In the age of AI, how do we hire the right people? You don't want to end up with someone who's great at LeetCode but has never touched Claude Code and has zero interest in learning AI-assisted programming.&lt;/p&gt;

&lt;p&gt;But compared to LeetCode or traditional software knowledge, AI is still very young. So how do we gauge whether a candidate can stay productive at the company over the next few years?&lt;/p&gt;

&lt;h2&gt;
  
  
  A Note on Terminology
&lt;/h2&gt;

&lt;p&gt;"AI" is a broad term that works fine for general audiences. But as professionals, we should be precise.&lt;/p&gt;

&lt;p&gt;AI covers many subfields — deep learning, supervised learning, large language models, and more. This article focuses specifically on interview questions within the LLM space, so for simplicity I'll use "AI" to mean LLM throughout.&lt;/p&gt;

&lt;p&gt;This article also doesn't cover hiring for LLM training roles — that's outside my expertise, and frankly it's a more mature field with established interview practices. The focus here is on LLM application engineering.&lt;/p&gt;

&lt;h2&gt;
  
  
  Core Framework
&lt;/h2&gt;

&lt;p&gt;We evaluate candidates across 4 dimensions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Learning velocity:&lt;/strong&gt;
We're hiring engineers who code with AI. Whether they're building AI features or just using Claude Code day-to-day, they need to have a genuine hunger for staying current.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In the LLM application space, there's no university course that can keep up. What you learned at the start of the year may already be obsolete by December. Self-directed learning is the only way.&lt;/p&gt;

&lt;p&gt;The best AI engineers are like dogs chasing a ball — they're always running &lt;em&gt;toward&lt;/em&gt; the technology, not waiting to be pushed by it.&lt;/p&gt;

&lt;p&gt;So our questions don't just test LLM knowledge; they also probe whether the candidate has that chasing instinct.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Conceptual understanding:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
How well does the candidate understand LLMs at a systems level?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Hands-on experience:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Have they actually used AI coding tools in practice?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Domain knowledge:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Knowledge of specific frameworks (e.g., LangGraph). This dimension is more relevant for candidates in AI integration roles.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Sample Questions
&lt;/h2&gt;

&lt;p&gt;The following are example questions along with my own answers.&lt;/p&gt;

&lt;p&gt;These aren't "correct" answers — treat them as a reference point. And just like LLMs have a training cutoff, my answers here have a cutoff of June 2026.&lt;/p&gt;

&lt;h3&gt;
  
  
  Learning Velocity
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;What are the major phases in the evolution of LLM application development? Hint: the first phase is prompt engineering.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Answer: Prompt engineering → context engineering → Harness Engineering&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;What is Harness Engineering?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Harness Engineering is the practice of building the external execution framework around AI agents — including tools, memory, retrieval, validation, workflow, and feedback loops — to improve agent accuracy and controllability.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Put simply: modern agent architecture = model + harness.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Name a few recent LLM applications you're aware of.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Examples: OpenClaw, Hermes Agent, Happy Codex, etc. (as of May 2026)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Name a few recent LLM models.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Examples: Opus, GPT-5.5, etc. (as of May 2026)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;How do you keep up with developments in LLM technology?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Following news sites, specific media outlets, building personal LLM projects and learning as you go, etc.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Conceptual Understanding
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;What's the difference between prompt engineering and context engineering?&lt;/strong&gt;
Prompt engineering is about &lt;em&gt;how to write a better prompt&lt;/em&gt;. Context engineering is about &lt;em&gt;how to dynamically construct the entire runtime context for an AI agent&lt;/em&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Modern agent performance depends primarily on whether the agent has the right context and tools — not just on how elegant the prompt is.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;How do you interpret the phrase "RAG is dead"?&lt;/strong&gt;
There are two levels to this:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;With the rise of context engineering, the focus has shifted from "better RAG" to "better context management" as the primary lever for improving agent effectiveness.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;More precisely: it's not RAG that's dead — it's Naive RAG. The early approach of chunk → embed → similarity search is what's been superseded.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;What context engineering methodologies are you familiar with?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Context compression, structured note-taking, sub-agent architectures.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;What's the relationship between context engineering and Harness Engineering?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Harness Engineering focuses on the overall execution framework and runtime system for AI agents. Context engineering focuses on how to dynamically organize and deliver the right context to the agent.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Context engineering can be seen as one of the core components of Harness Engineering.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;What is Progressive Disclosure?&lt;/strong&gt;
Progressive Disclosure is a design principle where a system doesn't surface all information at once, but instead reveals relevant content incrementally as needed — reducing complexity and minimizing context noise.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Hands-on Experience
&lt;/h3&gt;

&lt;p&gt;The following questions don't have right or wrong answers — except the last one.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Walk me through a real scenario where you used Claude Code to write production code.&lt;/li&gt;
&lt;li&gt;What's the dumbest thing you've seen an AI write?&lt;/li&gt;
&lt;li&gt;What do you do when the AI keeps failing to fix a bug?&lt;/li&gt;
&lt;li&gt;Have you compared multiple AI coding tools? Which do you prefer and why?&lt;/li&gt;
&lt;li&gt;As a developer, how should we think about writing code in the AI era?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I have some thoughts on that last question, but I'll save them for a separate piece: &lt;em&gt;The AI-Era Engineer Should Steer, Not Type&lt;/em&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Domain Knowledge
&lt;/h3&gt;

&lt;p&gt;For this section, tailor the questions to whatever frameworks are relevant to the role — LangGraph, for example, if that's part of the stack.&lt;/p&gt;

&lt;p&gt;I'll leave the specifics to you.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>interview</category>
    </item>
    <item>
      <title>Web4.0 Is Coming</title>
      <dc:creator>code plato</dc:creator>
      <pubDate>Fri, 08 May 2026 06:29:42 +0000</pubDate>
      <link>https://dev.to/codeplato/web40-is-coming-2and</link>
      <guid>https://dev.to/codeplato/web40-is-coming-2and</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;AI isn't just a tool upgrade — it's a new computing platform revolution.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  Part 1: The Cracks Are Already Showing
&lt;/h1&gt;

&lt;p&gt;I've been job hunting recently, and I noticed something interesting: genuine "LLM integration developer" roles are still surprisingly rare. What's more interesting is that even when companies do post them, most require:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI Agent experience&lt;/li&gt;
&lt;li&gt;LLM project experience&lt;/li&gt;
&lt;li&gt;RAG experience&lt;/li&gt;
&lt;li&gt;AI Workflow experience&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here's the problem: LLM development has only exploded in the past few years. How many engineers actually have complete AI development experience? Many engineers only started transitioning into LLM development a few months ago.&lt;/p&gt;

&lt;p&gt;If you keep the bar this rigid and can't hire anyone, those people will get picked up by other companies. In another year or two, you might not be able to hire them at all, even if you want to.&lt;/p&gt;

&lt;p&gt;(So if I'm job hunting right now — you could hire me today. Just don't make me do LeetCode.)&lt;/p&gt;

&lt;p&gt;But the really interesting part isn't the hiring market. It's that most companies, even now, have no idea how to make money with AI. The people who are actually using LLMs to build things are indie developers, small teams, hackers, and solo founders. They don't even know if it will be profitable — but they're running experiments anyway, because "this thing is just too cool."&lt;/p&gt;

&lt;p&gt;That hacker intuition is hard to explain with traditional business logic. Most great tech revolutions didn't start with a clear business model. They started because a group of people thought something was fascinating.&lt;/p&gt;

&lt;p&gt;That's how the internet started. Personal computers. Smartphones. And now AI.&lt;/p&gt;

&lt;p&gt;The real danger is that many large companies are still sitting comfortably in their existing lanes, asking:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Can AI make money?&lt;/li&gt;
&lt;li&gt;How do we calculate AI ROI?&lt;/li&gt;
&lt;li&gt;Will AI disrupt our current business?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But the question they should actually be asking is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Will our company still exist in ten years?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Because history has already answered this. Kodak didn't die because its technology was weak. Nokia didn't die because its engineers weren't good enough. They died because when a new computing platform arrived, they were still living in the old era.&lt;/p&gt;

&lt;p&gt;And right now, the cracks are already showing.&lt;/p&gt;

&lt;p&gt;The way I see it, a Niagara Falls is being held back by a thin mud wall — and that wall has started to crack.&lt;/p&gt;

&lt;p&gt;Today, 90% of internet companies are already standing at the edge of a cliff. They just haven't realized it yet. Don't believe me? Let's run a social experiment starting now:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Build an AI Skill for Jira&lt;/li&gt;
&lt;li&gt;Build an AI Skill for productivity tools&lt;/li&gt;
&lt;li&gt;Build AI-native versions of various Web2.0 apps&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Watch what happens.&lt;/p&gt;




&lt;h1&gt;
  
  
  Part 2: The Web4.0 Architecture
&lt;/h1&gt;

&lt;p&gt;"Web3.0" is a term that's been talked to death. Why? Because it never produced a computing paradigm genuinely capable of restructuring Web2.0.&lt;/p&gt;

&lt;p&gt;But AI is different.&lt;/p&gt;

&lt;p&gt;I'm calling this wave Web4.0, because AI is starting to deeply penetrate software itself. It's no longer just a search bar, a chatbot, or an assistant tool — it's gradually becoming part of the operating logic of software.&lt;/p&gt;

&lt;p&gt;I'd even argue this will be the fourth industrial revolution, because for the first time, machines are beginning to &lt;em&gt;participate in producing software themselves&lt;/em&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. The Software Interface
&lt;/h2&gt;

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

&lt;p&gt;The software interface of Web4.0 will look very different from today's — but not completely unfamiliar.&lt;/p&gt;

&lt;p&gt;Future software will most likely split into: &lt;strong&gt;software on the left, AI on the right&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The left side will still be traditional GUI:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Task lists&lt;/li&gt;
&lt;li&gt;Tables&lt;/li&gt;
&lt;li&gt;Charts&lt;/li&gt;
&lt;li&gt;Dashboards&lt;/li&gt;
&lt;li&gt;Status bars&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Humans still need to &lt;em&gt;see&lt;/em&gt; state, so GUI isn't going away.&lt;/p&gt;

&lt;p&gt;But the right side will become an AI operation layer. Users won't primarily interact through buttons anymore — they'll accomplish most tasks through natural language, conversation, and intent.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"Move this issue to next week and notify the relevant team members."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;AI will:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Update the issue&lt;/li&gt;
&lt;li&gt;Change the status&lt;/li&gt;
&lt;li&gt;Send notifications&lt;/li&gt;
&lt;li&gt;Adjust the timeline&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The left-side GUI's role shifts to: &lt;em&gt;showing the current state of the system&lt;/em&gt;. Users can even watch AI operate within the system and step in manually when needed.&lt;/p&gt;

&lt;p&gt;Software will shift from:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Humans operate software"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;to:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"AI operates software. Humans supervise AI."&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  2. System Architecture
&lt;/h2&gt;

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

&lt;p&gt;The core shift in Web4.0 is that every frontend will eventually connect to an AI engine.&lt;/p&gt;

&lt;p&gt;Whether it's:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;App&lt;/li&gt;
&lt;li&gt;Web&lt;/li&gt;
&lt;li&gt;Desktop&lt;/li&gt;
&lt;li&gt;Skill&lt;/li&gt;
&lt;li&gt;Agent&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Everything will plug into:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;SLM + RAG&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Many people assume the future will be dominated by ever-larger models, but I don't think so. LLMs are too expensive, enterprise-sensitive data can't leave the building, and no serious company wants its core technology dependent on someone else's API. A truly mature company will never build its core business permanently on external infrastructure.&lt;/p&gt;

&lt;p&gt;So Web4.0 will inevitably move toward:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Each company's own SLM (Small Language Model) + proprietary RAG.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;LLMs will be more like early exploration tools, general reasoning engines, and product validation platforms. Mature products will eventually own their own:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI Engine&lt;/li&gt;
&lt;li&gt;Memory&lt;/li&gt;
&lt;li&gt;Knowledge Base&lt;/li&gt;
&lt;li&gt;Workflow System&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The competitive moat for companies will gradually shift away from:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Frontend pages&lt;/li&gt;
&lt;li&gt;CRUD systems&lt;/li&gt;
&lt;li&gt;Database design&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;RAG architecture&lt;/li&gt;
&lt;li&gt;Workflow orchestration&lt;/li&gt;
&lt;li&gt;Enterprise knowledge organization&lt;/li&gt;
&lt;li&gt;Agent collaboration systems&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  3. The Product Lifecycle
&lt;/h2&gt;

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

&lt;p&gt;The lifecycle of Web4.0 products will also change.&lt;/p&gt;

&lt;p&gt;In the early stage, most teams will go straight to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OpenAI&lt;/li&gt;
&lt;li&gt;Claude&lt;/li&gt;
&lt;li&gt;Gemini&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Combined with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MCP&lt;/li&gt;
&lt;li&gt;RAG&lt;/li&gt;
&lt;li&gt;Workflow&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To ship fast — because the cost of experimentation is low, and the product can "come alive" from day one.&lt;/p&gt;

&lt;p&gt;This is completely different from before. Products used to require massive amounts of custom logic before they were usable. Now AI already ships with enormous general-purpose capability.&lt;/p&gt;

&lt;p&gt;But at the mature stage, companies will gradually migrate to:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;SLM + proprietary RAG&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The reasons are practical:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reduce costs&lt;/li&gt;
&lt;li&gt;Control data&lt;/li&gt;
&lt;li&gt;Reduce API dependency&lt;/li&gt;
&lt;li&gt;Ensure stability&lt;/li&gt;
&lt;li&gt;Establish technical sovereignty&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So the typical Web4.0 product evolution path will likely look like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;LLM API
    ↓
RAG
    ↓
Workflow
    ↓
SLM
    ↓
Enterprise AI Engine
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  4. Customer Support
&lt;/h2&gt;

&lt;p&gt;Customer service may be one of the first industries to be fully restructured.&lt;/p&gt;

&lt;p&gt;But this time, it's real AI support — not the "fake AI that makes everyone want to throw their phone" from before.&lt;/p&gt;

&lt;p&gt;Old AI customer service:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Couldn't follow context&lt;/li&gt;
&lt;li&gt;Couldn't hold a continuous conversation&lt;/li&gt;
&lt;li&gt;Couldn't read emotions&lt;/li&gt;
&lt;li&gt;Only matched keywords&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So users always ended up demanding a human.&lt;/p&gt;

&lt;p&gt;Web4.0 AI support is different. It will genuinely understand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Context&lt;/li&gt;
&lt;li&gt;Conversation history&lt;/li&gt;
&lt;li&gt;User sentiment&lt;/li&gt;
&lt;li&gt;User behavior&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It can even detect:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"This user is getting frustrated."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And proactively say:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"Let me connect you with a human agent."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Most companies' support operations will become fully AI-manageable. The scenarios that still require humans will shrink to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;High-stakes decisions&lt;/li&gt;
&lt;li&gt;Emotional de-escalation&lt;/li&gt;
&lt;li&gt;Edge case handling&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Another industry, restructured.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Version Iteration
&lt;/h2&gt;

&lt;p&gt;This is a more radical idea, but I think it's cool — and the kind of thing that could go viral.&lt;/p&gt;

&lt;p&gt;It's this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"What goes into the next version is decided by user vote."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;AI will:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Analyze user behavior&lt;/li&gt;
&lt;li&gt;Summarize user needs&lt;/li&gt;
&lt;li&gt;Auto-generate candidate features&lt;/li&gt;
&lt;li&gt;Let users vote&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And eventually, AI will auto-implement some of those features too.&lt;/p&gt;

&lt;p&gt;The old software development flow:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Product Manager
    ↓
Requirements
    ↓
Engineering
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the Web4.0 era, it may gradually become:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Users
    ↓
AI Analysis
    ↓
AI Implementation
    ↓
User Feedback
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Software will enter:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The era of high-velocity self-evolution."&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  Part 3: Web4.0 Is Not an Upgrade — It's a Replacement
&lt;/h1&gt;

&lt;p&gt;Many companies still think of AI as a plugin, a feature, a chat window, a productivity tool.&lt;/p&gt;

&lt;p&gt;But what AI is actually changing is the entire software architecture.&lt;/p&gt;

&lt;p&gt;Web4.0 is not "Web2.0 + AI." It's a new computing platform — just like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PCs replaced mainframes&lt;/li&gt;
&lt;li&gt;Smartphones replaced parts of the PC&lt;/li&gt;
&lt;li&gt;Cloud computing restructured enterprise systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AI will redefine:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Software&lt;/li&gt;
&lt;li&gt;Workflows&lt;/li&gt;
&lt;li&gt;Organizational structures&lt;/li&gt;
&lt;li&gt;Development models&lt;/li&gt;
&lt;li&gt;User interaction&lt;/li&gt;
&lt;li&gt;Enterprise architecture&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most companies think they're just waiting for AI to mature.&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;AI is waiting to replace them.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We may be standing at the single biggest technological inflection point since the invention of the computer. And many companies are already at the edge of the cliff — they just haven't looked down yet.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>web40</category>
      <category>architecture</category>
    </item>
    <item>
      <title>LLM-Based AI Agent Architecture: A New Kind of Personal Computer on Your Device</title>
      <dc:creator>code plato</dc:creator>
      <pubDate>Fri, 08 May 2026 06:27:59 +0000</pubDate>
      <link>https://dev.to/codeplato/llm-based-ai-agent-architecture-a-new-kind-of-personal-computer-on-your-device-4hn8</link>
      <guid>https://dev.to/codeplato/llm-based-ai-agent-architecture-a-new-kind-of-personal-computer-on-your-device-4hn8</guid>
      <description>&lt;p&gt;For a long time, we've thought of AI as a "chatbot."&lt;/p&gt;

&lt;p&gt;But if you step back and look from a systems architecture perspective, you'll find that a truly mature AI agent looks more like a new kind of personal computer — one that lives on your device.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;A compute core&lt;/li&gt;
&lt;li&gt;Memory&lt;/li&gt;
&lt;li&gt;A file system&lt;/li&gt;
&lt;li&gt;A software system&lt;/li&gt;
&lt;li&gt;Input/output devices&lt;/li&gt;
&lt;li&gt;Long-term storage&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Its core isn't a traditional CPU. It's an LLM.&lt;/p&gt;




&lt;h1&gt;
  
  
  Part 1: The LLM Engine — A "CPU" Without Memory
&lt;/h1&gt;

&lt;p&gt;The LLM itself has no long-term memory.&lt;/p&gt;

&lt;p&gt;It's more like an inference engine:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Receives input&lt;/li&gt;
&lt;li&gt;Reads context&lt;/li&gt;
&lt;li&gt;Performs reasoning&lt;/li&gt;
&lt;li&gt;Produces output&lt;/li&gt;
&lt;li&gt;Then "forgets"&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It cannot natively remember things that happened in the past.&lt;/p&gt;

&lt;p&gt;Therefore:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The LLM itself is more like a CPU than a complete agent.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It only handles computation.&lt;/p&gt;

&lt;p&gt;What makes AI "seem like it knows you" is the context provided externally.&lt;/p&gt;

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




&lt;h1&gt;
  
  
  Part 2: Context — The AI Agent's Memory
&lt;/h1&gt;

&lt;p&gt;If the LLM is the CPU,&lt;br&gt;&lt;br&gt;
then Context is the AI's memory.&lt;/p&gt;

&lt;p&gt;And this memory should be split into two layers.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Global Context
&lt;/h2&gt;

&lt;p&gt;This layer belongs to the entire agent.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;User preferences&lt;/li&gt;
&lt;li&gt;Long-term goals&lt;/li&gt;
&lt;li&gt;Habitual behaviors&lt;/li&gt;
&lt;li&gt;Persona settings&lt;/li&gt;
&lt;li&gt;Persistent rules&lt;/li&gt;
&lt;li&gt;Historical knowledge&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"User prefers Markdown"&lt;/li&gt;
&lt;li&gt;"User is learning AI Agents"&lt;/li&gt;
&lt;li&gt;"User habitually writes in Chinese"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This information shapes agent behavior over time.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Session Context
&lt;/h2&gt;

&lt;p&gt;This layer belongs only to the current conversation.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The current topic under discussion&lt;/li&gt;
&lt;li&gt;The current article structure&lt;/li&gt;
&lt;li&gt;The most recent rounds of dialogue&lt;/li&gt;
&lt;li&gt;Temporary reasoning results&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's more like temporary memory during program execution.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Context Window Is Essentially a "Memory Limit"
&lt;/h2&gt;

&lt;p&gt;An LLM's Context Window isn't unlimited.&lt;/p&gt;

&lt;p&gt;This means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;History can't accumulate indefinitely&lt;/li&gt;
&lt;li&gt;Information gets more expensive as the window fills&lt;/li&gt;
&lt;li&gt;Past the limit, content must be compressed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Therefore:&lt;/p&gt;

&lt;p&gt;An agent must manage memory like an operating system:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Compress history&lt;/li&gt;
&lt;li&gt;Summarize&lt;/li&gt;
&lt;li&gt;Clear low-priority information&lt;/li&gt;
&lt;li&gt;Transfer long-term data&lt;/li&gt;
&lt;li&gt;Dynamically load needed data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Therefore:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The Context Window is essentially the AI's memory capacity.&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.amazonaws.com%2Fuploads%2Farticles%2F4npp9c0irslj70nmwztx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4npp9c0irslj70nmwztx.png" alt="Context Memory" width="399" height="365"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Part 3: Markdown Files — The Agent's Hard Drive
&lt;/h1&gt;

&lt;p&gt;Long-term data shouldn't stay in the context window.&lt;/p&gt;

&lt;p&gt;Otherwise:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Costs keep rising&lt;/li&gt;
&lt;li&gt;Inference slows down&lt;/li&gt;
&lt;li&gt;The context balloons rapidly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Therefore:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Long-term memory should live in a file system.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And one very natural form is Markdown files.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Notes&lt;/li&gt;
&lt;li&gt;Project materials&lt;/li&gt;
&lt;li&gt;Journals&lt;/li&gt;
&lt;li&gt;World-building&lt;/li&gt;
&lt;li&gt;User profiles&lt;/li&gt;
&lt;li&gt;Writing material&lt;/li&gt;
&lt;li&gt;Long-term knowledge bases&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All of these can be stored as Markdown.&lt;/p&gt;

&lt;p&gt;This means:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Traditional Computer&lt;/th&gt;
&lt;th&gt;AI Agent&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Hard Drive&lt;/td&gt;
&lt;td&gt;Markdown File System&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Markdown has one enormous advantage:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It can be read by AI and directly by humans alike.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Therefore:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Humans can edit it&lt;/li&gt;
&lt;li&gt;AI can process it&lt;/li&gt;
&lt;li&gt;Git can version-control it&lt;/li&gt;
&lt;li&gt;Files can sync&lt;/li&gt;
&lt;li&gt;It persists even without AI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This creates something like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"A shared knowledge space between humans and AI."&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.amazonaws.com%2Fuploads%2Farticles%2Foukjayt7amtx4cm9p9lt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foukjayt7amtx4cm9p9lt.png" alt="Markdown Storage" width="439" height="353"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Part 4: Skills — Software Installed on AI
&lt;/h1&gt;

&lt;p&gt;Future AI agents won't only have "knowledge."&lt;/p&gt;

&lt;p&gt;They'll also have "skills."&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Writing Skill&lt;/li&gt;
&lt;li&gt;Programming Skill&lt;/li&gt;
&lt;li&gt;Video Editing Skill&lt;/li&gt;
&lt;li&gt;Data Analysis Skill&lt;/li&gt;
&lt;li&gt;Project Management Skill&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These Skills might be composed of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prompts&lt;/li&gt;
&lt;li&gt;Workflows&lt;/li&gt;
&lt;li&gt;Python code&lt;/li&gt;
&lt;li&gt;MCP configurations&lt;/li&gt;
&lt;li&gt;Tool invocation rules&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They are like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Software installed on the AI.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Therefore:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Traditional Computer&lt;/th&gt;
&lt;th&gt;AI Agent&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Software / App&lt;/td&gt;
&lt;td&gt;Skill&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Skills can be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Installed&lt;/li&gt;
&lt;li&gt;Uninstalled&lt;/li&gt;
&lt;li&gt;Updated&lt;/li&gt;
&lt;li&gt;Shared&lt;/li&gt;
&lt;li&gt;Combined&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In the future there may even be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Skill Stores&lt;/li&gt;
&lt;li&gt;Skill Marketplaces&lt;/li&gt;
&lt;li&gt;Open-source Skill communities&lt;/li&gt;
&lt;/ul&gt;

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




&lt;h1&gt;
  
  
  Part 5: Input/Output — More Than Just Text
&lt;/h1&gt;

&lt;p&gt;One of the biggest misconceptions about traditional chatbots is that people think AI only communicates through text.&lt;/p&gt;

&lt;p&gt;In reality, future AI agents will have a complete multimodal I/O system.&lt;/p&gt;

&lt;h2&gt;
  
  
  Input
&lt;/h2&gt;

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

&lt;ul&gt;
&lt;li&gt;Text&lt;/li&gt;
&lt;li&gt;Voice&lt;/li&gt;
&lt;li&gt;Images&lt;/li&gt;
&lt;li&gt;Video&lt;/li&gt;
&lt;li&gt;Camera feeds&lt;/li&gt;
&lt;li&gt;Files&lt;/li&gt;
&lt;li&gt;Screen content&lt;/li&gt;
&lt;li&gt;Device state&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Output
&lt;/h2&gt;

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

&lt;ul&gt;
&lt;li&gt;Text&lt;/li&gt;
&lt;li&gt;Voice&lt;/li&gt;
&lt;li&gt;Images&lt;/li&gt;
&lt;li&gt;Video&lt;/li&gt;
&lt;li&gt;Automated actions&lt;/li&gt;
&lt;li&gt;Control commands&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Therefore:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;An AI agent is fundamentally a new interaction layer.&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.amazonaws.com%2Fuploads%2Farticles%2Fll7ci9420dt1807nagkx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fll7ci9420dt1807nagkx.png" alt="Multimodal IO" width="417" height="330"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  The Complete System: A "Von Neumann-style" AI Computer
&lt;/h1&gt;

&lt;p&gt;When you put the whole architecture together:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Traditional Computer&lt;/th&gt;
&lt;th&gt;AI Agent&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CPU&lt;/td&gt;
&lt;td&gt;LLM Engine&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Memory&lt;/td&gt;
&lt;td&gt;Context&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hard Drive&lt;/td&gt;
&lt;td&gt;Markdown File System&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Software&lt;/td&gt;
&lt;td&gt;Skill&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Input Device&lt;/td&gt;
&lt;td&gt;Multimodal Input&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Output Device&lt;/td&gt;
&lt;td&gt;Multimodal Output&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;You'll find:&lt;/p&gt;

&lt;p&gt;It increasingly resembles a real computer.&lt;/p&gt;

&lt;p&gt;Except:&lt;/p&gt;

&lt;p&gt;This computer isn't built around a GUI.&lt;/p&gt;

&lt;p&gt;It's built around:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Language comprehension and reasoning."&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.amazonaws.com%2Fuploads%2Farticles%2Fh4xx6a75mho28opxcfka.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh4xx6a75mho28opxcfka.png" alt="AI Computer Architecture" width="400" height="355"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  The Operating System: A Personal AI OS
&lt;/h1&gt;

&lt;p&gt;In the future, every person's device may host a persistent AI Agent.&lt;/p&gt;

&lt;p&gt;One that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Understands you&lt;/li&gt;
&lt;li&gt;Remembers you&lt;/li&gt;
&lt;li&gt;Helps you work&lt;/li&gt;
&lt;li&gt;Manages your knowledge&lt;/li&gt;
&lt;li&gt;Schedules your Skills&lt;/li&gt;
&lt;li&gt;Operates your devices&lt;/li&gt;
&lt;li&gt;Grows alongside you over time&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At that point:&lt;/p&gt;

&lt;p&gt;What we use might no longer just be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Windows&lt;/li&gt;
&lt;li&gt;macOS&lt;/li&gt;
&lt;li&gt;Android&lt;/li&gt;
&lt;/ul&gt;

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

&lt;blockquote&gt;
&lt;p&gt;A new kind of personal AI operating system, with LLM at its core.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And the chat box we use today&lt;/p&gt;

&lt;p&gt;may only be the earliest prototype of this new era.&lt;/p&gt;

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




&lt;h1&gt;
  
  
  References
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Park, Joon Sung et al.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;MemGPT: Towards LLMs as Operating Systems&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
arXiv:2310.08560&lt;br&gt;&lt;br&gt;
&lt;a href="https://arxiv.org/abs/2310.08560" rel="noopener noreferrer"&gt;https://arxiv.org/abs/2310.08560&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Wang, Lei et al.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;LLM as OS, Agents as Apps: Envisioning AIOS, Agents and the AIOS-Agent Ecosystem&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
arXiv:2312.03815&lt;br&gt;&lt;br&gt;
&lt;a href="https://arxiv.org/abs/2312.03815" rel="noopener noreferrer"&gt;https://arxiv.org/abs/2312.03815&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>agents</category>
      <category>architecture</category>
    </item>
    <item>
      <title>How AI Cured My Writing Procrastination</title>
      <dc:creator>code plato</dc:creator>
      <pubDate>Fri, 08 May 2026 06:21:19 +0000</pubDate>
      <link>https://dev.to/codeplato/how-ai-cured-my-writing-procrastination-44j7</link>
      <guid>https://dev.to/codeplato/how-ai-cured-my-writing-procrastination-44j7</guid>
      <description>&lt;h2&gt;
  
  
  A Procrastinator's Excuse
&lt;/h2&gt;

&lt;p&gt;I haven't written a blog post in years.&lt;/p&gt;

&lt;p&gt;Not because I had nothing to say — I just couldn't bring myself to do it. Writing used to take me at least a week per article: brainstorming, drafting, revising over and over, then hunting for images, drawing flowcharts in draw.io, dragging and dropping for half an hour just to get a box on screen. The whole process was slow and exhausting, and I gradually built up a real resistance to it. Every time I opened my editor, the first thought that crossed my mind wasn't "what should I write?" — it was "forget it, maybe another day."&lt;/p&gt;

&lt;p&gt;And another day turned into several years.&lt;/p&gt;

&lt;p&gt;It was only recently that I realized what had stopped me was never a lack of things to write about. It was that writing itself had become too &lt;em&gt;heavy&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Now AI has taken away a large part of that weight.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Pain Points
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Turning ideas into coherent prose is hard&lt;/strong&gt;: I just need to articulate my thoughts, even roughly, and AI can organize them into flowing paragraphs. I control the direction and the perspective; it polishes the language. This division of labor suits me much better.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Finding images is time-consuming, and they're often the wrong format or size&lt;/strong&gt;: Now I describe what I want and AI generates it — style, composition, everything — in seconds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Drawing flowcharts is slow&lt;/strong&gt;: I describe the logic to AI and it generates the diagram directly. I just check if it's right and adjust if needed.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Setup
&lt;/h2&gt;

&lt;p&gt;I've built myself a small writing pipeline, centered around two AI roles.&lt;/p&gt;

&lt;p&gt;The first is the &lt;strong&gt;writer&lt;/strong&gt;. I throw my ideas, thoughts, and core points at it, and it turns those fragments into a complete first draft.&lt;/p&gt;

&lt;p&gt;Once the draft is ready, &lt;strong&gt;I edit it myself&lt;/strong&gt;. This step is crucial — don't underestimate your readers. The best articles are as short as possible, and most people these days (myself included) don't have the patience for a long read. Later is never.&lt;/p&gt;

&lt;p&gt;After editing, I hand it to the second AI role — the &lt;strong&gt;editor&lt;/strong&gt;. It reviews the article and does another round of polishing. Honestly, I'm not sure yet whether I need the editor role. I'll try it this way and see.&lt;/p&gt;

&lt;p&gt;I'm not sure how many more articles I'll write after this. But at least today, I opened my editor — and finished this one.&lt;/p&gt;

</description>
      <category>ai</category>
    </item>
    <item>
      <title>[Enterprise Git Workflow Best Practice] Use a Sub-Project Branch When Developing Large Features</title>
      <dc:creator>code plato</dc:creator>
      <pubDate>Sat, 22 Mar 2025 20:15:47 +0000</pubDate>
      <link>https://dev.to/codeplato/enterprise-git-workflow-best-practice-use-a-sub-project-branch-when-developing-large-features-3a4a</link>
      <guid>https://dev.to/codeplato/enterprise-git-workflow-best-practice-use-a-sub-project-branch-when-developing-large-features-3a4a</guid>
      <description>&lt;p&gt;In a large project team, when developing major features, we may assign a few people to form a sub-project team. From the perspective of the overall project, this temporary group is working on a single, independent feature as a whole. However, within the temporary project, each member has their own sub-feature development tasks.  &lt;/p&gt;

&lt;p&gt;In this case, individual developers should not commit their code directly to the main development branch, such as &lt;code&gt;develop&lt;/code&gt; . Instead, a &lt;strong&gt;sub-project branch&lt;/strong&gt; should be created. Each team member commits their code to the &lt;strong&gt;sub-project branch&lt;/strong&gt; first, and at a designated point in time, the &lt;strong&gt;sub-project branch&lt;/strong&gt; is merged into the main development branch.&lt;/p&gt;

&lt;h1&gt;
  
  
  Terminology Definitions
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;feature branch:&lt;/strong&gt; A Git branch created when developing a new feature. Normally, only one person commits to this branch. You can also think of it as a personal branch. It is often named &lt;code&gt;feature/&amp;lt;feature-name&amp;gt;&lt;/code&gt; or &lt;code&gt;feature-&amp;lt;feature-name&amp;gt;&lt;/code&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0g4rk8bn0b17gf0yhuvn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0g4rk8bn0b17gf0yhuvn.png" alt=" " width="151" height="388"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;sub-project branch:&lt;/strong&gt; When developing a large feature, a sub-project team consisting of several developers is formed. In this case, a larger development branch can be created for this sub-project. This branch can span multiple sprints. The sub-project developers first commit their changes to the project branch, and at a certain point in time, the project branch is merged into the main branch. The project branch can be named &lt;code&gt;feature/&amp;lt;sub-project-name&amp;gt;-&amp;lt;creation-date&amp;gt;&lt;/code&gt;.&lt;/p&gt;

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

&lt;h1&gt;
  
  
  Mistakes We Made with Sub-Project Branch
&lt;/h1&gt;

&lt;p&gt;Before writing on this topic, I assumed the use of sub-project branch was self-evident. However, after our team encountered several issues while using sub-project branches, we considered abandoning them. This led to even more problems, making me truly understand the importance of sub-project branch. As expected, the most profound realizations often come through mistakes.&lt;/p&gt;

&lt;p&gt;Below are the reasons we abandoned project branches. However, these reasons actually stemmed from incorrect usage rather than inherent flaws in project branches. Therefore, I will list the problems we encountered, along with the real causes.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Project branches made the code messy:&lt;/strong&gt; We had different versions of components across different project branches.

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Real Cause:&lt;/strong&gt; Excessive development branches led to code management chaos, especially when many branches remained unsynchronized for long periods, making the overall code structure complex.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcucatt6voafurzmc1g5w.png" alt=" " width="214" height="400"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frequent conflicts during merges:&lt;/strong&gt; Every time we merged a project branch, we encountered numerous conflicts that were difficult to resolve. Sometimes, new bugs were introduced while resolving conflicts, such as accidentally deleting correct code.

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Real Cause:&lt;/strong&gt; Long periods without synchronization caused excessive conflicts during merging, increasing the effort required to resolve them. The correct approach is to synchronize from the &lt;code&gt;develop&lt;/code&gt;&amp;nbsp; branch to the &lt;code&gt;sub-project branch&lt;/code&gt; regularly.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faxj4382ylx9sjq5voykh.png" alt=" " width="350" height="350"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In reality, these issues were not intrinsic to project branches themselves.&lt;/p&gt;

&lt;h1&gt;
  
  
  Necessity of Sub-Project Branch
&lt;/h1&gt;

&lt;p&gt;Below are the key reasons for using project branches and best practices for managing them properly.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Check for conflicts before merging:&lt;/strong&gt; Fix the conflicts on the PR before merging.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Evaluate the testing process:&lt;/strong&gt; Notify the testing team before merging and ensure they have enough time to conduct tests.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Significantly reduce the difficulty of reverts:&lt;/strong&gt; If a branch contains only a single change, it minimizes coupling issues with other functionalities.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Run automated tests on the project branch:&lt;/strong&gt; Write sanity tests specifically for the branch to ensure feature reliability before merging.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The develop branch is used more widely than you think:&lt;/strong&gt; The &lt;code&gt;develop&lt;/code&gt;&amp;nbsp; branch is not just for some engineers—others, including different engineering teams, may also rely on it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk98mp1sds69vpjc5qfmw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk98mp1sds69vpjc5qfmw.png" alt=" " width="300" height="300"&gt;&lt;/a&gt;&lt;br&gt;
Even testers and product managers might use the &lt;code&gt;develop&lt;/code&gt;&amp;nbsp; branch.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa4r18vh7awa3v4d2xpfq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa4r18vh7awa3v4d2xpfq.png" alt=" " width="350" height="350"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
Using project branches can maximize release stability, improve code traceability, enhance testing efficiency, and facilitate better team collaboration.&lt;/p&gt;

&lt;h1&gt;
  
  
  Best Practices for Using Sub-Project Branch
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Daily synchronization:&lt;/strong&gt; Keep merging the &lt;code&gt;develop&lt;/code&gt;&amp;nbsp; branch changes to Sub-project branch to avoid excessive conflicts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Keep sub-project branches short-lived:&lt;/strong&gt; Sub-project branches should not exist for too long (&lt;strong&gt;no more than 3 sprints&lt;/strong&gt;).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Squash merges:&lt;/strong&gt; Use &lt;code&gt;squash &amp;amp; merge&lt;/code&gt; when merging code to make all commits in 1 commit. Cause from the perspective of the &lt;code&gt;develop&lt;/code&gt; branch, this feature should have only one or a few commits.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Keep it clean:&lt;/strong&gt; &lt;strong&gt;Delete the sub-project branch after merging&lt;/strong&gt; to prevent unnecessary future commits.&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>The Bicycle-shed effect</title>
      <dc:creator>code plato</dc:creator>
      <pubDate>Wed, 05 Mar 2025 19:50:05 +0000</pubDate>
      <link>https://dev.to/codeplato/the-bicycle-shed-effect-1mln</link>
      <guid>https://dev.to/codeplato/the-bicycle-shed-effect-1mln</guid>
      <description>&lt;h1&gt;
  
  
  The Definition
&lt;/h1&gt;

&lt;p&gt;The Law of triviality as known as the bicycle-shed effect. Quote from  wiki page:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The law of triviality is C. Northcote Parkinson's 1957 argument that people within an organization commonly give disproportionate weight to trivial issues.[1] Parkinson provides the example of a fictional committee whose job was to approve the plans for a nuclear power plant spending the majority of its time on discussions about relatively minor but easy-to-grasp issues, such as what materials to use for the staff bicycle shed, while neglecting the proposed design of the plant itself, which is far more important and a far more difficult and complex task.&lt;/p&gt;

&lt;p&gt;The law has been applied to software development and other activities.[2] The terms bicycle-shed effect, bike-shed effect, and bike-shedding were coined based on Parkinson's example; it was popularized in the Berkeley Software Distribution community by the Danish software developer Poul-Henning Kamp in 1999[3] and, due to that, has since become popular within the field of software development generally. &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.amazonaws.com%2Fuploads%2Farticles%2Fcc4w0jku749lyclxc2ku.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcc4w0jku749lyclxc2ku.jpg" alt=" " width="600" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  What do we use it?
&lt;/h1&gt;

&lt;p&gt;Here are some examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;☎️ Don’t get too hung up on details during a meeting. For example, don’t argue over the details of the prompts that should be displayed for this feature. Don’t even waste time on technical details. Meeting time is for everyone, not just a few people.&lt;/li&gt;
&lt;li&gt;🖱️ When searching for information on the Internet, don't be distracted by interesting little bits of knowledge, or even Google them. Try to be patient with your curiosity.&lt;/li&gt;
&lt;li&gt;📦 When developing a feature or product, don’t waste too much time polishing it before the first release. Fine-tune it after the release.&lt;/li&gt;
&lt;li&gt;🗄️ When using the four-quadrant work method, try not to waste time on urgent but unimportant tasks. Once you have solved a problem, move on to the next one and do not extend the time for that problem.&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
  </channel>
</rss>
