<?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: nasuy</title>
    <description>The latest articles on DEV Community by nasuy (@n_asuy).</description>
    <link>https://dev.to/n_asuy</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3688104%2Fca4952f1-b749-450e-81a0-1c11b4c83d34.jpg</url>
      <title>DEV Community: nasuy</title>
      <link>https://dev.to/n_asuy</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/n_asuy"/>
    <language>en</language>
    <item>
      <title>A free model matched GPT-5.2. No fine-tuning. It rewrote its own skill files until it got there</title>
      <dc:creator>nasuy</dc:creator>
      <pubDate>Wed, 01 Apr 2026 09:52:11 +0000</pubDate>
      <link>https://dev.to/n_asuy/a-free-model-matched-gpt-52-no-fine-tuning-it-rewrote-its-own-skill-files-until-it-got-there-5c4c</link>
      <guid>https://dev.to/n_asuy/a-free-model-matched-gpt-52-no-fine-tuning-it-rewrote-its-own-skill-files-until-it-got-there-5c4c</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwcov1r1jcp8alyzvyy6b.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%2Fwcov1r1jcp8alyzvyy6b.png" alt="Agent Self Evolution" width="800" height="446"&gt;&lt;/a&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%2Fscw0jc9bpo4d423yi25i.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%2Fscw0jc9bpo4d423yi25i.png" alt="Agent Self Evolution Diagram" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Kimi-K2.5 scores 21.4% on a difficult benchmark. GPT-5.2 scores 41.1%. A team gave Kimi-K2.5 a system that rewrites its own skill files after every failure. No fine-tuning. No new training data. After a few rounds, it hit 40.6%. That is GPT-5.2 territory.&lt;/p&gt;

&lt;p&gt;The paper is MetaClaw (&lt;a href="https://arxiv.org/abs/2603.17187" rel="noopener noreferrer"&gt;arXiv:2603.17187&lt;/a&gt;). It is one of five papers published between March 15 and March 20 that all arrived at the same idea: let agents evolve their own skills.&lt;/p&gt;

&lt;p&gt;A second team from UCL and HKUST Guangzhou published Memento-Skills (&lt;a href="https://arxiv.org/abs/2603.18743" rel="noopener noreferrer"&gt;arXiv:2603.18743&lt;/a&gt;). They froze Gemini-3.1-Flash and only let it edit external Markdown files. On Humanity's Last Exam (HLE), 2,500 expert-level questions, accuracy went from 17.9% to 38.7%. More than double. The model never changed. The skill files did.&lt;/p&gt;

&lt;p&gt;EvoSkill, Automating Skill Acquisition, and AgentFactory shipped the same week. Five teams. Different methods. Same 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%2Fphjd312w1yh0f3r8mef2.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%2Fphjd312w1yh0f3r8mef2.png" alt="Agent Self Evolution Flow" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why rewriting skill files works better than fine-tuning
&lt;/h2&gt;

&lt;p&gt;Fine-tuning is expensive. You need data, GPUs, and a pipeline. The result is a new model checkpoint that is hard to inspect, hard to edit, and locked to one provider. Skill files are the opposite. They are plain text. A developer can read them, edit them, and move them to a different model.&lt;/p&gt;

&lt;p&gt;Memento-Skills keeps the model frozen and puts all learning into a loop called Read-Write Reflective Learning. The agent picks a skill file, runs the task, and checks the result. If it fails, the system finds the file that caused the failure and rewrites it. If it succeeds, the skill gets a higher score.&lt;/p&gt;

&lt;p&gt;The hard part is picking the right skill. With 235 skills in the library, a keyword search (BM25) picks the correct one 32% of the time. Memento-Skills trains a small router model with offline RL. Instead of matching words, it learns which skill leads to success. Recall@1 rose to 60%.&lt;/p&gt;

&lt;p&gt;MetaClaw goes further. It rewrites skill files like the others, but it also updates model weights during idle time. When the user is away (sleep mode, keyboard silence, empty calendar slots), it runs RL in the background. The authors call this the Opportunistic Meta-Learning Scheduler. This is what pushed Kimi-K2.5 to GPT-5.2 level. Skill evolution alone was not enough. The weight updates closed the last gap.&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%2F63p7j6locur9htlcvlb6.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%2F63p7j6locur9htlcvlb6.png" alt="Agent Self Evolution Comparison" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What happened when skills grew from 5 to 235
&lt;/h2&gt;

&lt;p&gt;Memento-Skills started with 5 basic skills (web search, terminal, file operations). After running through HLE training questions, the library grew to 235. Clusters formed on their own: quantum physics, math, chemistry, clinical science, chess, code. No one designed these categories. The agent created them by failing and fixing.&lt;/p&gt;

&lt;p&gt;Training accuracy went from 30.8% to 54.5%. Test accuracy hit 38.7%. The gap between training and test tells you something. Skills learned on biology questions transferred to unseen biology questions. Skills learned on quantum physics transferred to unseen quantum physics questions. But a skill for chemistry rarely helped with history.&lt;/p&gt;

&lt;p&gt;On GAIA (165 multi-step reasoning questions), the picture was different. Test accuracy was 66.0%, up 13.7 points from 52.3%. But transfer was weaker. GAIA questions are diverse by design. A skill for one question type almost never applies to another.&lt;/p&gt;

&lt;p&gt;MetaClaw's numbers point to a different finding. Weaker models benefit more from skill evolution. Kimi-K2.5 jumped 19.2 percentage points. A stronger model would likely see smaller gains. Skill evolution does not replace model quality. It compensates for it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Only the direction converged
&lt;/h2&gt;

&lt;p&gt;All numbers are self-reported. No independent replication exists for either paper.&lt;/p&gt;

&lt;p&gt;MetaClaw and Memento-Skills use different benchmarks. You cannot compare their numbers directly. MetaClaw's 40.6% and Memento-Skills' 38.7% are on completely different tests.&lt;/p&gt;

&lt;p&gt;MetaClaw updates model weights. The other four keep weights frozen. These are fundamentally different approaches. MetaClaw gets bigger gains but needs GPU access during idle time. Memento-Skills works with any API model because it never touches the weights.&lt;/p&gt;

&lt;p&gt;The skill router still fails 40% of the time. As libraries grow, a bad router wastes the improvements. This is the bottleneck that none of the five papers fully solved.&lt;/p&gt;

&lt;h2&gt;
  
  
  Agent learning became readable
&lt;/h2&gt;

&lt;p&gt;The cost of making a model smarter has been "train a better model" or "fine-tune with more data." Five papers in ten days showed a third option. Give the agent a folder of skill files and let it rewrite them after every failure.&lt;/p&gt;

&lt;p&gt;Memento-Skills doubled HLE accuracy with frozen Gemini-3.1-Flash. MetaClaw pushed a free model to GPT-5.2 level. The skill files are Markdown. A developer can open them, read them, and understand what the agent learned.&lt;/p&gt;

&lt;p&gt;That is the real point. Not the numbers. The fact that agent learning is now readable.&lt;/p&gt;

</description>
      <category>reinforcementlearning</category>
    </item>
    <item>
      <title>Your AI agent works alone. No plan, no tests, no review. 118,000 developers found a fix.</title>
      <dc:creator>nasuy</dc:creator>
      <pubDate>Mon, 30 Mar 2026 02:53:29 +0000</pubDate>
      <link>https://dev.to/n_asuy/your-ai-agent-works-alone-no-plan-no-tests-no-review-118000-developers-found-a-fix-2b7g</link>
      <guid>https://dev.to/n_asuy/your-ai-agent-works-alone-no-plan-no-tests-no-review-118000-developers-found-a-fix-2b7g</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Favtybdcje6j0z309fhw4.webp" 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%2Favtybdcje6j0z309fhw4.webp" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A single AI coding agent can write code. But give it a big task, and it drifts. It skips tests. It forgets the plan. It says "done" when it is not. This is not a model problem. It is a workflow problem.&lt;/p&gt;

&lt;p&gt;Two open-source frameworks on GitHub found the same answer. Split the work across multiple agents. Make them check each other. Force a loop: plan, implement, review, fix. The bigger one has 118,624 stars.&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%2Fqfcyoiz4bo90610xdpl5.webp" 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%2Fqfcyoiz4bo90610xdpl5.webp" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why splitting the work stops the drift
&lt;/h2&gt;

&lt;p&gt;When one agent does everything, its context grows with every step. After 30 minutes, it loses track of the original plan. After an hour, it invents new requirements that nobody asked for. The failure patterns are predictable. The agent tries to build everything at once and the structure falls apart. It declares "done" halfway through. It marks features complete without writing tests. It leaves the environment in a broken state at the end of a session.&lt;/p&gt;

&lt;p&gt;Multi-agent orchestration fixes this by keeping each step small. A planning agent breaks the task into pieces. An implementation agent handles one piece at a time. A review agent checks if the code matches the plan. If it does not, the work goes back to implementation. Each agent starts with a clean, focused context. The drift stops. Superpowers makes this explicit. It requires plans to be "clear enough for a junior engineer with enthusiasm but no sense, no judgment, no project context, and reluctance to test."&lt;/p&gt;

&lt;p&gt;This is not a new idea. It is the same structure as CI/CD pipelines in software development. The difference is that agents now fill the roles that humans used to fill. The handoff between stages is automatic.&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%2Fepwgymbca763ncbvl22y.webp" 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%2Fepwgymbca763ncbvl22y.webp" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Discipline or flexibility. Two frameworks, two designs.
&lt;/h2&gt;

&lt;p&gt;Install &lt;a href="https://github.com/obra/superpowers" rel="noopener noreferrer"&gt;Superpowers&lt;/a&gt; (118,624 stars) and the agent changes how it works. When it detects you want to build something, it stops. It does not start writing code. It asks what you actually want. After it pulls out the spec from the conversation, it shows the design in short chunks you can read and understand. You approve the design. The agent writes a plan. You say "execute" and sub-agent-driven development starts.&lt;/p&gt;

&lt;p&gt;Each task in the plan is 2-5 minutes long. Every task has exact file paths, full code, and verification steps. After each sub-agent finishes a task, a two-stage review runs. Stage one checks if the code matches the spec. Stage two checks code quality. TDD is RED-GREEN-REFACTOR. Code written before a test exists gets deleted. 14 built-in skills enforce this 7-step workflow as "mandatory, not a suggestion." It works with Claude Code, Cursor, Codex, OpenCode, and Gemini CLI.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Yeachan-Heo/oh-my-claudecode" rel="noopener noreferrer"&gt;oh-my-claudecode&lt;/a&gt; (13,996 stars) takes the team approach. Its Team mode runs a staged pipeline: team-plan, team-prd, team-exec, team-verify, team-fix. Since v4.4.0, it can run Claude, Codex, and Gemini at the same time using tmux workers. You can send code reviews to Codex, UI tasks to Gemini, and integration work to Claude in one command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;omc team 2:codex "Review auth module for security issues"
omc team 2:gemini "Redesign UI components for accessibility"
omc team 1:claude "Implement payment flow"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It has 32 specialized agents and routes tasks to Haiku or Opus based on difficulty. You can also run a cross-model PR review in one line:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/ccg Review this PR — architecture (Codex) and UI components (Gemini)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The standout feature is automatic skill learning. When you debug a problem, OMC extracts the fix as a skill file. For example, if you fix an aiohttp proxy crash, it saves this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="c1"&gt;# .omc/skills/fix-proxy-crash.md&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Fix Proxy Crash&lt;/span&gt;
&lt;span class="na"&gt;triggers&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;proxy"&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;aiohttp"&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;disconnected"&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
&lt;span class="na"&gt;source&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;extracted&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="s"&gt;Wrap the handler at server.py:42 with try/except ClientDisconnectedError...&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next time the same error shows up, this skill gets injected automatically. No manual call needed. When requirements are unclear, &lt;code&gt;/deep-interview "I want to build a task management app"&lt;/code&gt; starts Socratic questioning. It finds hidden assumptions and measures clarity on weighted dimensions before any code is written.&lt;/p&gt;

&lt;p&gt;Superpowers enforces discipline to ensure quality. oh-my-claudecode offers multi-provider flexibility to widen your options. Both use the same core loop: plan, implement, review, fix.&lt;/p&gt;

&lt;h2&gt;
  
  
  The model is not the bottleneck. The workflow is.
&lt;/h2&gt;

&lt;p&gt;Harness engineering showed that one agent needs a good environment to work well over time. Multi-agent orchestration goes further. It splits the work across agents and makes them inspect each other. The quality comes from the structure, not from any single model.&lt;/p&gt;

&lt;p&gt;Both frameworks arrived at the same core loop: plan, implement, review, fix. The next time your AI agent produces bad code, try adding structure before switching models.&lt;/p&gt;

</description>
      <category>productivity</category>
    </item>
    <item>
      <title>18,883 MCP servers. Five Chinese tech giants joined this week. Zero security audits.</title>
      <dc:creator>nasuy</dc:creator>
      <pubDate>Thu, 26 Mar 2026 16:25:18 +0000</pubDate>
      <link>https://dev.to/n_asuy/18883-mcp-servers-five-chinese-tech-giants-joined-this-week-zero-security-audits-fco</link>
      <guid>https://dev.to/n_asuy/18883-mcp-servers-five-chinese-tech-giants-joined-this-week-zero-security-audits-fco</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3l7p4zdsy0rp7qo4m4w3.webp" 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%2F3l7p4zdsy0rp7qo4m4w3.webp" alt="MCP Supply Chain Security" width="800" height="446"&gt;&lt;/a&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%2Fjxyiw4nty2i1vgjmbfhm.webp" 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%2Fjxyiw4nty2i1vgjmbfhm.webp" alt="MCP Supply Chain Risk Diagram" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On March 24, someone put malware in litellm, a popular Python library for calling LLM APIs. Versions 1.82.7 and 1.82.8 on PyPI stole API keys for OpenAI, Anthropic, and Gemini. Two Hacker News posts about it got 1,159 points total and 364 comments.&lt;/p&gt;

&lt;p&gt;The same week, five Chinese tech companies appeared on the MCP.so trending page. Tencent, Zhipu AI, Amap (owned by Alibaba), Baidu, and MiniMax. They all published MCP servers between March 23 and 25. The total number of MCP servers has now reached 18,883.&lt;/p&gt;

&lt;p&gt;Everyone noticed litellm. Nobody noticed the Chinese MCP servers. No security review. No public discussion. Nothing.&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%2Fcyvuur8lslnlhzc112kl.webp" 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%2Fcyvuur8lslnlhzc112kl.webp" alt="npm vs MCP structural comparison" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  MCP has the same supply chain problem as npm, but worse
&lt;/h2&gt;

&lt;p&gt;npm's supply chain attacks are well known. event-stream in 2018. ua-parser-js in 2021. MCP is heading down the same path, but with two differences that make it worse.&lt;/p&gt;

&lt;p&gt;The first is data direction. When you install an npm package, code runs on your machine. It stays local. When you connect an MCP server, your data leaves your machine. A map server gets your location queries. A search server gets your search queries. A deploy server gets your HTML source code. npm packages do not send data out by default. MCP servers do. That is what they are built for.&lt;/p&gt;

&lt;p&gt;The second is geopolitics. npm was mostly neutral. No government had a special interest in controlling JavaScript module registries. MCP is different. Five Chinese tech companies now provide servers that handle location data, search queries, and deployment workflows. Data that flows through these servers may fall under China's &lt;a href="https://en.wikipedia.org/wiki/Cybersecurity_Law_of_the_People%27s_Republic_of_China" rel="noopener noreferrer"&gt;Cybersecurity Law&lt;/a&gt; (2017), which requires data to stay in China, and China's &lt;a href="https://en.wikipedia.org/wiki/National_Intelligence_Law_of_the_People%27s_Republic_of_China" rel="noopener noreferrer"&gt;National Intelligence Law&lt;/a&gt; (2017), which requires organizations to cooperate with intelligence work. npm never had this kind of issue.&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%2F64m2l44aoe1gjbemdfcs.webp" 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%2F64m2l44aoe1gjbemdfcs.webp" alt="npm vs MCP timeline comparison" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Three events happened in one week. Nobody connected them.
&lt;/h2&gt;

&lt;p&gt;March 19. Security firm Qualys published a blog post: "&lt;a href="https://blog.qualys.com/product-tech/2026/03/19/mcp-servers-shadow-it-ai-qualys-totalai-2026" rel="noopener noreferrer"&gt;MCP Servers: The Shadow IT of the AI Agent Era&lt;/a&gt;." They warned that developers install MCP servers without approval from IT departments. The same pattern as Shadow IT in the 2010s, but with AI tools.&lt;/p&gt;

&lt;p&gt;March 24. litellm versions 1.82.7 and 1.82.8 on PyPI were &lt;a href="https://github.com/BerriAI/litellm/issues/24512" rel="noopener noreferrer"&gt;found to carry malware&lt;/a&gt;. A file called litellm_init.pth stole LLM API credentials. litellm is widely used in production because it lets you call OpenAI, Anthropic, and Gemini through one API. Hacker News gave the story &lt;a href="https://news.ycombinator.com/item?id=47501426" rel="noopener noreferrer"&gt;1,159 points&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;March 23-25. Five Chinese tech companies showed up on &lt;a href="https://mcp.so" rel="noopener noreferrer"&gt;MCP.so&lt;/a&gt;'s trending page. Tencent EdgeOne deploys HTML and returns a public URL. Zhipu AI offers web search with intent recognition. Amap and Baidu provide map and location services. MiniMax provides text-to-speech, image generation, and video generation through MCP.&lt;/p&gt;

&lt;p&gt;Nobody has connected these three events. litellm was reported. Qualys published their warning. But no one has asked: who is auditing the five Chinese MCP servers that appeared the same week?&lt;/p&gt;

&lt;h2&gt;
  
  
  This is not about China being dangerous
&lt;/h2&gt;

&lt;p&gt;This article does not say Chinese MCP servers are dangerous. There is no evidence that any of them contain malware. Some publish their source code on GitHub.&lt;/p&gt;

&lt;p&gt;The problem is structural. 18,883 MCP servers exist, and there is no standard audit process. After the event-stream attack in 2018, it took npm years to add package signing and scoped registries. MCP will need server verification and data flow monitoring. The difference is that MCP sends live data, not just code. The attack surface is wider.&lt;/p&gt;

&lt;p&gt;Our previous article, "MCP tool spoofing: 100% success rate," covered protocol-level risks. This is a different kind of problem. Not how MCP is designed, but who publishes servers, where data goes, and who checks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ten years of npm lessons. One year to learn them.
&lt;/h2&gt;

&lt;p&gt;MCP is becoming the npm of AI. Same supply chain problem, but higher stakes. Live data instead of static code. National interests instead of neutral registries. npm needed ten years to learn its lessons. MCP needs to learn them in one. The litellm hack was the first warning sign. The next one might come from an MCP server itself.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>security</category>
      <category>mcp</category>
      <category>supplychainsecurity</category>
    </item>
    <item>
      <title>"The human might be asleep." One line in Karpathy's program.md started 100 automatic experiments per night.</title>
      <dc:creator>nasuy</dc:creator>
      <pubDate>Tue, 24 Mar 2026 13:09:57 +0000</pubDate>
      <link>https://dev.to/n_asuy/the-human-might-be-asleep-one-line-in-karpathys-programmd-started-100-automatic-experiments-e1</link>
      <guid>https://dev.to/n_asuy/the-human-might-be-asleep-one-line-in-karpathys-programmd-started-100-automatic-experiments-e1</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5sz6dpey3gnvbluxp2ey.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%2F5sz6dpey3gnvbluxp2ey.png" alt="autoresearch architecture diagram" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The biggest bottleneck in code optimization is the human in the loop. You think of an idea, implement it, test it, check results, then think again. In March 2026, Andrej Karpathy removed that bottleneck. He released &lt;a href="https://github.com/karpathy/autoresearch" rel="noopener noreferrer"&gt;autoresearch&lt;/a&gt;, a tool that lets an AI agent edit code, run experiments, evaluate results, and keep or discard changes automatically. It hit 42,921 GitHub stars in under two weeks (GitHub API, 2026-03-19 11:56 UTC).&lt;/p&gt;

&lt;p&gt;The surprising part is where it spread. Shopify CEO Tobi Lutke applied the pattern to Liquid, a template engine running in production for 20 years. He reported a 53% reduction in parse+render time in &lt;a href="https://github.com/Shopify/liquid/pull/2056" rel="noopener noreferrer"&gt;PR #2056&lt;/a&gt;. LangChain CEO hwchase17 used it to optimize agent quality scores. Ole Lehmann reported raising a Claude Code skill eval score from 56% to 92%. This is not an ML research tool anymore. It is a pattern for any task with a measurable metric.&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%2Fdmg1sd1y45of3md14u8q.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%2Fdmg1sd1y45of3md14u8q.png" alt="autoresearch loop diagram" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why three files are enough
&lt;/h2&gt;

&lt;p&gt;The architecture is stripped to the minimum. There are three core files.&lt;/p&gt;

&lt;p&gt;program.md is the instruction file. A human writes it. It defines what to optimize, how to run experiments, and what must not break. train.py is the only file the agent edits. prepare.py is the evaluation harness. Nobody touches it.&lt;/p&gt;

&lt;p&gt;This separation works because the boundary between "what changes" and "what stays fixed" is clear. The agent edits train.py, runs a 5-minute experiment, checks the metric. If it improved, git commit. If not, git reset. About 12 experiments per hour. Leave it running overnight and you get about 100.&lt;/p&gt;

&lt;p&gt;The 5-minute cap is what makes this work. It forces every experiment into the same budget. You can compare results fairly. Without a fixed budget, a slow-converging change looks just as good as a fast one. The cap makes comparison possible.&lt;/p&gt;

&lt;p&gt;program.md includes this line: "The human might be asleep, or gone from a computer and expects you to continue working indefinitely until you are manually stopped." That single instruction removes the human bottleneck.&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%2Fcfie42hsryqkwlxu59g5.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%2Fcfie42hsryqkwlxu59g5.png" alt="autoresearch applications diagram" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  126 experiments from Karpathy, 974 tests from Shopify
&lt;/h2&gt;

&lt;p&gt;Karpathy ran 126 experiments on a single H100 in about 10.5 hours. He published the full log in &lt;a href="https://github.com/karpathy/autoresearch/discussions/43" rel="noopener noreferrer"&gt;Discussion #43&lt;/a&gt;. Out of 126 experiments, 23 were kept. That is about 18%. Most experiments fail or make things worse. But the ones that improve stack up. val_bpb went from 0.9979 to 0.9697.&lt;/p&gt;

&lt;p&gt;The biggest win was halving the batch size (524K to 262K), which gave -0.0119. The biggest failure was weight tying (sharing embed and unembed layers), which added +2.24 BPB and completely broke the model. The dead-end log is valuable too. Knowing what does not work saves future experiments from going in the wrong direction.&lt;/p&gt;

&lt;p&gt;Shopify took a different approach. The target was a Ruby library (lib/liquid/*.rb), not ML training code. The metric was combined_us (parse + render time), not val_bpb. The critical difference was a 3-gate validation system. Every change had to pass 974 unit tests, then a liquid-spec compliance check, then a performance benchmark. Only changes that passed all three gates and improved the metric were kept. About 120 experiments produced 93 commits. Parse time dropped 61%. Render time dropped 20%. Total dropped 53%.&lt;/p&gt;

&lt;p&gt;The key insight was that garbage collection was consuming 74% of CPU time. Focusing on reducing object allocations drove most of the improvement. Allocations went from 62,620 to 24,530, a 61% reduction.&lt;/p&gt;

&lt;h2&gt;
  
  
  Caveats
&lt;/h2&gt;

&lt;p&gt;Shopify PR #2056 was still OPEN as of 2026-03-19. It has not been merged. Comments on the PR mention test failures. The 53% figure is self-reported and has not been independently verified.&lt;/p&gt;

&lt;p&gt;Metrics gaming is a known issue. After 30+ iterations, agents start finding ways to improve the metric without real improvement. Random seed engineering is one example. Karpathy's log includes fragile improvements like "seed 137 effect" that may not reproduce.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/mutable-state-inc/autoresearch-at-home" rel="noopener noreferrer"&gt;autoresearch-at-home&lt;/a&gt; (440+ stars) extends the pattern to distributed collaboration in a SETI@home style. &lt;a href="https://github.com/zkarimi22/autoresearch-anything" rel="noopener noreferrer"&gt;autoresearch-anything&lt;/a&gt; (by zkarimi22) generates setup files for any project with &lt;code&gt;npx autoresearch-anything&lt;/code&gt;. The MLX port for Apple Silicon found that a depth=4 model beats depth=8 under the 5-minute budget. Smaller models that run more optimizer steps win. The optimal setup depends on the hardware.&lt;/p&gt;

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

&lt;p&gt;autoresearch success does not depend on model capability. It depends on three design choices. Metric: what you measure. Scope: what the agent is allowed to change. Verify: what tests and constraints protect the things that must not break.&lt;/p&gt;

&lt;p&gt;Shopify's 53% improvement happened because they built a 3-gate Verify system with 974 tests, spec compliance, and benchmarks. If you want to apply this pattern, start by asking two questions. Do you have a measurable metric? Do you have a test suite that protects what matters? If the answer to both is yes, you can let an AI run 100 experiments while you sleep.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>machinelearning</category>
      <category>agents</category>
    </item>
    <item>
      <title>The most valuable AI agent skills are buried in GitHub repos</title>
      <dc:creator>nasuy</dc:creator>
      <pubDate>Fri, 20 Mar 2026 12:20:18 +0000</pubDate>
      <link>https://dev.to/n_asuy/the-most-valuable-ai-agent-skills-are-buried-in-github-repos-1jgg</link>
      <guid>https://dev.to/n_asuy/the-most-valuable-ai-agent-skills-are-buried-in-github-repos-1jgg</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu1zy3swajxpzz1hzps70.webp" 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%2Fu1zy3swajxpzz1hzps70.webp" alt=" " width="800" height="446"&gt;&lt;/a&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%2Fh91zzaaaubltlz4s3f4b.webp" 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%2Fh91zzaaaubltlz4s3f4b.webp" alt=" " width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Most agent skills people create are a rewrite of what the LLM already knows. Claude Code's skill-creator, "save this as a skill" at the end of a chat. These tools are easy to use, but the output rarely adds real capability. The LLM can already do what the skill describes.&lt;/p&gt;

&lt;p&gt;Skills become valuable when they encode procedural knowledge. Not facts. Not prompts. Procedures that someone found through debugging and iteration. That kind of knowledge is buried in open-source repositories on GitHub. In March 2026, a research team at East China Normal University proposed a 3-stage pipeline that extracts skills from OSS repos and converts them to standard SKILL.md format.&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%2F0c4c8253eang18knuwfu.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%2F0c4c8253eang18knuwfu.png" alt=" " width="800" height="533"&gt;&lt;/a&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%2Fdm169rhxfanmdv0f5vl2.webp" 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%2Fdm169rhxfanmdv0f5vl2.webp" alt=" " width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why writing skills by hand does not scale
&lt;/h2&gt;

&lt;p&gt;There are three ways to build agent skills.&lt;/p&gt;

&lt;p&gt;Manual creation by experts produces high quality. Anthropic adopted this approach officially. OpenAI Codex also supports SKILL.md compatibility. But it does not scale. Each skill requires domain knowledge and testing time. When an agent needs hundreds of skills, manual creation breaks down.&lt;/p&gt;

&lt;p&gt;Autonomous discovery by the agent is the second path. EvoSkill, covered in a previous post, takes this approach. It scales, but semantic consistency is hard to maintain. The quality of auto-generated skills varies widely.&lt;/p&gt;

&lt;p&gt;OSS mining is the third path and the focus of this paper. Agent repositories on GitHub contain procedures that someone spent time debugging and iterating on. The framework finds those procedures automatically and converts them to standard format. It reuses existing human knowledge, so semantic consistency is higher than generating from scratch.&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%2Fs7z6sbrx73y1ksz7b6w7.webp" 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%2Fs7z6sbrx73y1ksz7b6w7.webp" alt=" " width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How the pipeline works, and what it found
&lt;/h2&gt;

&lt;p&gt;The pipeline has three stages.&lt;/p&gt;

&lt;p&gt;Repository structure analysis comes first. Tools like repo2AI convert the entire codebase to Markdown and map core scripts and helper modules in a hierarchy.&lt;/p&gt;

&lt;p&gt;Semantic skill identification follows. Code modules are converted to dense vectors. A bi-encoder calculates cosine similarity to narrow down candidates. A cross-encoder then refines the ranking. Only modules that pass four promotion criteria become skill candidates. The criteria are recurrence (appears in multiple contexts), verified (works and is documented), non-obviousness (required domain expertise to discover), and generalizability (can be parameterized for other contexts). Modules that fail any criterion are not promoted. This filter prevents both extremes of "make everything a skill" and "make nothing a skill."&lt;/p&gt;

&lt;p&gt;SKILL.md conversion is the final stage. Identified patterns are standardized into three layers. YAML frontmatter for metadata. Markdown body for procedures. An assets directory for scripts and templates. Hardcoded paths and API keys are removed to make the skill portable.&lt;/p&gt;

&lt;p&gt;The team tested this on two repositories. TheoremExplainAgent from TIGER AI Lab generates Manim animations that explain STEM theorems using a 2-agent system (Planner and Coding Agent). Code2Video from Show Lab at the National University of Singapore generates educational videos using a 3-agent system (Planner, Coder, Critic). It was accepted at the NeurIPS 2025 Deep Learning for Code Workshop. The Code2Video paper reports a 40-point improvement in knowledge transfer efficiency when comparing its full pipeline to a baseline code generation model. TeachQuiz scores went from about 40 to about 80. (&lt;a href="https://arxiv.org/abs/2510.01174" rel="noopener noreferrer"&gt;arXiv:2510.01174&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;For managing large skill libraries, the paper proposes SkillNet. It is an ontology-based structure that connects skills through relationships like "is a subset of" and "requires output from." The paper cites a 30% reduction in execution steps and 40% improvement in task reward, though the experimental conditions behind these numbers are limited.&lt;/p&gt;

&lt;h2&gt;
  
  
  Caveats
&lt;/h2&gt;

&lt;p&gt;This paper is a preprint, submitted March 12, 2026. It has not been peer-reviewed. The 40-point improvement in knowledge transfer efficiency comes from the Code2Video paper (&lt;a href="https://arxiv.org/abs/2510.01174" rel="noopener noreferrer"&gt;arXiv:2510.01174&lt;/a&gt;), not from the mining framework itself. The framework was tested on only two education-focused repositories. Its applicability to other domains has not been verified. The framework code has not been open-sourced.&lt;/p&gt;

&lt;p&gt;On security, a survey paper (&lt;a href="https://arxiv.org/abs/2602.12430" rel="noopener noreferrer"&gt;arXiv:2602.12430&lt;/a&gt;) found vulnerabilities in 26.1% of community-distributed skills. Data theft accounts for 13.3% and privilege escalation for 11.8%. OSS mining amplifies this risk. The paper proposes a 4-stage verification pipeline from static analysis (G1) to permission verification (G4), but no production deployment has been reported.&lt;/p&gt;

&lt;p&gt;The SKILL.md specification was published as an open standard by Anthropic on December 18, 2025. OpenAI has documented compatibility in both Codex and its API. The output format is becoming an industry standard.&lt;/p&gt;

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

&lt;p&gt;Skill mines are on GitHub. Manual creation does not scale. Autonomous discovery is inconsistent. OSS mining reuses existing human knowledge, making it a credible third path for skill acquisition.&lt;/p&gt;

&lt;p&gt;The four promotion criteria from this paper, recurrence, verified, non-obviousness, and generalizability, work as a practical filter for deciding what should become a skill. You do not need the full pipeline to use them. Start by looking at the OSS repositories your team already uses. There may be procedural knowledge buried in the code that is worth extracting.&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>ai</category>
      <category>agents</category>
      <category>opensource</category>
    </item>
    <item>
      <title>[Meta-RL] We told an AI agent 'you can fail 3 times.' Accuracy went up 19%.</title>
      <dc:creator>nasuy</dc:creator>
      <pubDate>Thu, 19 Mar 2026 04:30:29 +0000</pubDate>
      <link>https://dev.to/n_asuy/meta-rl-we-told-an-ai-agent-you-can-fail-3-times-accuracy-went-up-19-2dpj</link>
      <guid>https://dev.to/n_asuy/meta-rl-we-told-an-ai-agent-you-can-fail-3-times-accuracy-went-up-19-2dpj</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F19fztgzbbzkupxn2yip7.jpeg" 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%2F19fztgzbbzkupxn2yip7.jpeg" alt=" " width="800" height="446"&gt;&lt;/a&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%2F4w361opu8xm9qh8s8a6q.webp" 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%2F4w361opu8xm9qh8s8a6q.webp" alt=" " width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Most AI agents get one shot. They take a question, run a search or plan, give an answer, and move on. If the answer is wrong, that failure is lost. The agent starts fresh next time with no memory of what went wrong.&lt;/p&gt;

&lt;p&gt;Humans do not work this way. We fail, think about why, and try again with a better plan. From December 2025 to March 2026, three independent research teams at AI2, EPFL, and Tsinghua University arrived at the same idea. Give the agent multiple tries. Make it reflect on each failure. Feed that reflection into the next attempt. They call it Meta-Reinforcement Learning with Self-Reflection.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why single-shot agents fall short
&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%2F1hnfluguksx7fr262krs.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%2F1hnfluguksx7fr262krs.jpg" alt=" " width="800" height="408"&gt;&lt;/a&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%2Fhqpwtuevpdel0tc98xrk.jpeg" 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%2Fhqpwtuevpdel0tc98xrk.jpeg" alt=" " width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Standard RL-trained agents treat each attempt as independent. They cannot carry lessons from one try to the next. Three problems come together here.&lt;/p&gt;

&lt;p&gt;Sparse rewards make it hard to learn. The agent only gets a signal at the end (right or wrong), so it cannot tell which steps were good and which were bad. Independent tries mean the agent repeats the same mistakes. And as RL training continues, the agent converges to a fixed behavior and stops exploring new strategies. &lt;a href="https://arxiv.org/abs/2512.16848" rel="noopener noreferrer"&gt;LaMer&lt;/a&gt; showed this with trajectory diversity analysis. After RL training, agents had much lower entropy in their action patterns compared to the base model.&lt;/p&gt;

&lt;p&gt;Meta-RL with Self-Reflection solves all three. The design is simple. Allow three attempts per problem. After each attempt, the agent writes what went wrong and what to try next. That reflection text goes into the context for the next attempt. During training, the system optimizes cross-episode rewards, so the model learns how to write useful reflections.&lt;/p&gt;

&lt;p&gt;The key point is that at test time, there are no weight updates. The agent adapts by adding past episodes and reflection text to its context window. LaMer calls this in-context policy adaptation. It means you do not need online learning after deployment.&lt;/p&gt;

&lt;h2&gt;
  
  
  What three teams found
&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%2Fjimaq28oi75e52ng95k8.webp" 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%2Fjimaq28oi75e52ng95k8.webp" alt=" " width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Three teams tested this pattern in different task domains. Their results show it works across search, games, web tasks, and multi-agent environments.&lt;/p&gt;

&lt;p&gt;AI2’s MR-Search targets search QA. Using Qwen2.5-7B, it improved QA benchmark average accuracy by 9.3% relative. With a smaller 3B model, the gain reached 19.3%. MR-Search uses turn-level advantage estimation to assign credit to each intermediate step, not just the final answer. It also scales beyond training. Even though the model trained with 3 attempts, performance keeps improving with 5 or 7 attempts at test time. (&lt;a href="https://arxiv.org/abs/2603.11327" rel="noopener noreferrer"&gt;arXiv:2603.11327&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;EPFL’s LaMer works on games and web tasks. Using Qwen3-4B, it improved pass@3 success rates by 11.8 points on Sokoban, 19.3 points on MineSweeper, and 13.9 points on Webshop versus the best RL baseline. One finding stands out. Keeping only reflection text in memory works better than the default setting of keeping both trajectory and reflection. On MineSweeper, reflection-only scored 80.5% versus 74.4% for full history. Reflections are shorter and carry more useful information per token. (&lt;a href="https://arxiv.org/abs/2512.16848" rel="noopener noreferrer"&gt;arXiv:2512.16848&lt;/a&gt;, ICLR 2026)&lt;/p&gt;

&lt;p&gt;Tsinghua’s MAGE extends this to multi-agent settings. It focuses on strategic exploitation, finding and using an opponent’s weaknesses. MAGE reached 100% success rate on Webshop (versus 75.2% for GiGPO) and 67.2% on Tic-Tac-Toe against MCTS-100 (versus 60.2% for LaMer). Against MCTS-1000, a near-perfect opponent in Tic-Tac-Toe, MAGE achieved a 100% draw rate through zero-shot adaptation. (&lt;a href="https://arxiv.org/abs/2603.03680" rel="noopener noreferrer"&gt;arXiv:2603.03680&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;The three frameworks differ in some design choices. MR-Search uses no discount between episodes (gamma=1.0), while LaMer and MAGE use 0.6. MAGE uses differential return, which rewards improvement over the previous episode rather than total score. MAGE’s ablation study showed differential return produces more stable learning than cumulative return. The three papers also use different metrics (Exact Match vs. pass@k), so direct number comparisons between them are not valid.&lt;/p&gt;

&lt;h2&gt;
  
  
  Caveats
&lt;/h2&gt;

&lt;p&gt;All results come from the authors’ own experiments. Large-scale independent reproduction is still limited. LaMer has been peer-reviewed at ICLR 2026. MR-Search and MAGE are preprints. MR-Search code is expected on March 21, 2026. LaMer and MAGE code is already public.&lt;/p&gt;

&lt;p&gt;Base models are small, 4B to 7B parameters. No one has tested this on 70B+ models yet. Training takes about twice as long as standard RL because episodes must be generated one after another, not in parallel. LaMer reported this cost.&lt;/p&gt;

&lt;p&gt;Reflection quality is a risk. LLM hallucinations can creep into reflections. A wrong reflection may hurt performance more than no reflection at all. None of the three papers propose a direct fix for this. Context length is another limit. Episodes and reflections pile up fast, and long tasks will lose information.&lt;/p&gt;

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

&lt;p&gt;The shift is from “get it right the first time” to “fail, reflect, and improve.” Three independent teams converged on this pattern at the same time. That convergence itself is a signal. For agent builders, the takeaway is practical. Question the assumption that your agent must finish in one try. Build in room for exploration and reflection. The mechanism is lightweight. No weight updates at test time. Just context.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>reinforcementlearning</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>[EvoSkill] An AI agent learned from its own failures and got 12 points more accurate.</title>
      <dc:creator>nasuy</dc:creator>
      <pubDate>Wed, 18 Mar 2026 04:17:47 +0000</pubDate>
      <link>https://dev.to/n_asuy/evoskill-an-ai-agent-learned-from-its-own-failures-and-got-12-points-more-accurate-1ak8</link>
      <guid>https://dev.to/n_asuy/evoskill-an-ai-agent-learned-from-its-own-failures-and-got-12-points-more-accurate-1ak8</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyvaxjj9rh1yusnn187ri.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%2Fyvaxjj9rh1yusnn187ri.jpg" alt=" " width="800" height="446"&gt;&lt;/a&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%2F07zjuwueftw037gxmkg4.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%2F07zjuwueftw037gxmkg4.jpg" alt=" " width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;AI coding agents have a structural weakness. Claude Code, Codex, and OpenHands are good at general problem solving. But they lack domain-specific know-how. How to correctly extract numbers from 89,000 pages of US Treasury documents. How to find accurate facts in noisy search results. That kind of expertise does not live inside the model.&lt;/p&gt;

&lt;p&gt;The current fix is to write "skills" by hand. A SKILL.md file with step-by-step instructions and helper scripts. Claude Code's skill spec made this format standard. But writing a new skill every time a new task appears does not scale.&lt;/p&gt;

&lt;p&gt;In March 2026, Sentient Labs and Virginia Tech released EvoSkill (&lt;a href="https://arxiv.org/abs/2603.02766" rel="noopener noreferrer"&gt;arXiv:2603.02766&lt;/a&gt;). It is a framework that analyzes an agent's failures and generates reusable skills automatically. No model retraining needed. Only the skills evolve.&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%2Fq1a014ejqstxl028aauy.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%2Fq1a014ejqstxl028aauy.jpg" alt=" " width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why skills are the right level of optimization
&lt;/h2&gt;

&lt;p&gt;Google's AlphaEvolve evolves code. GEPA/DSPy evolves prompts. EvoSkill evolves skills.&lt;/p&gt;

&lt;p&gt;Code optimization is tightly bound to a specific model and task. You cannot move it to another environment. Prompt optimization can shift priorities, but it cannot encode multi-step procedures. Skills sit in the middle. They can hold branching logic and verification steps inside a Markdown file. Humans can read them. Edit them. Hand them to a different agent as-is.&lt;/p&gt;

&lt;p&gt;EvoSkill runs an evolution loop with three specialized agents. The Executor runs tasks and collects failures. The Proposer analyzes failure traces, finds repeated patterns, and suggests new skills. The Skill Builder turns those suggestions into a SKILL.md file plus helper scripts inside &lt;code&gt;.claude/skills/&lt;/code&gt;. Candidates are tested on a held-out validation set, and the top N programs survive as the Frontier.&lt;/p&gt;

&lt;p&gt;The base model (Claude Opus 4.5) stays frozen throughout. No weight updates at all. Only the skill layer changes.&lt;/p&gt;

&lt;p&gt;The Proposer keeps a running history of past suggestions. It knows what worked and what got rejected. This prevents the loop from going in circles. The paper calls this mechanism Textual Feedback Descent.&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%2F2bqn8m7cdmr4a7ti49q1.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%2F2bqn8m7cdmr4a7ti49q1.jpg" alt=" " width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What this loop produced
&lt;/h2&gt;

&lt;p&gt;OfficeQA is a grounded reasoning benchmark built on US Treasury Bulletin archives (about 89,000 pages going back to 1939). It has 246 questions. Human solvers spend an average of 50 minutes per question (&lt;a href="https://www.databricks.com/blog/introducing-officeqa-benchmark-end-to-end-grounded-reasoning" rel="noopener noreferrer"&gt;Databricks&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;EvoSkill used only 10% of the data for training and raised exact-match accuracy from 60.6% to 67.9% (+7.3 points). The skills it discovered include a strict verification protocol for extracting numbers from financial tables and a Python-based method for CPI inflation adjustment.&lt;/p&gt;

&lt;p&gt;SealQA showed an even bigger gain. This benchmark tests fact-finding when web search returns noisy and contradictory results. Accuracy went from 26.6% to 38.7%, a jump of +12.1 points. The system discovered a skill called search-persistence-protocol. It lists all reasonable interpretations of ambiguous terms and searches each one separately. It requires at least three independent sources before giving an answer. It tries three or more query phrasings before reporting "not found."&lt;/p&gt;

&lt;p&gt;The most striking result came next. The skills evolved on SealQA transferred to BrowseComp (an OpenAI benchmark) with zero modification and improved accuracy by +5.3 points. Skill-level optimization produces transferable capabilities, not task-specific heuristics.&lt;/p&gt;

&lt;h2&gt;
  
  
  Caveats
&lt;/h2&gt;

&lt;p&gt;There is an author overlap concern. Two of the five EvoSkill authors (Weiyuan Chen and Tu Vu) also authored the SealQA benchmark. The +12.1 point improvement on SealQA was partly evaluated by the people who designed the test. The BrowseComp transfer result (+5.3 points) is on an independent benchmark built by OpenAI, which adds some objectivity.&lt;/p&gt;

&lt;p&gt;The official blog says "up to 50% accuracy improvement." The largest gain in the paper is +12.1 points in absolute terms (SealQA 26.6% to 38.7%). In relative terms, that is about 45%. When citing this work, use absolute points for accuracy.&lt;/p&gt;

&lt;p&gt;The paper is an arXiv preprint as of March 2026. No peer-reviewed publication has been confirmed. GitHub has 160 stars and 12 forks. No independent reproduction by third parties has been reported yet.&lt;/p&gt;

&lt;p&gt;Training beyond 10% of the data showed diminishing returns. The 15% split scored lower than 10%, suggesting mild overfitting. However, merging skills discovered in separate runs produced the strongest configuration overall.&lt;/p&gt;

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

&lt;p&gt;Improving AI agents used to mean two things: retrain the model, or write skills by hand. EvoSkill offers a third option. The agent learns from its own failures, generates skills automatically, and those skills transfer to tasks it has never seen.&lt;/p&gt;

&lt;p&gt;OfficeQA +7.3 points. SealQA +12.1 points. BrowseComp +5.3 points with zero-shot transfer. The model weights were never touched. Only the skill layer, made of Markdown instructions and helper scripts, evolved.&lt;/p&gt;

&lt;p&gt;Prompt engineering is hitting its ceiling. Code optimization does not transfer. Skills are the optimization layer in between, and they are human-readable. The paper is still pre-review, but the idea that agents could share skill libraries the way developers share packages is worth watching.&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>aiagentsclaudecode</category>
    </item>
    <item>
      <title>Codified Context: A chemist wrote 100K lines of game code alone. The secret was the context architecture.</title>
      <dc:creator>nasuy</dc:creator>
      <pubDate>Tue, 17 Mar 2026 04:18:09 +0000</pubDate>
      <link>https://dev.to/n_asuy/codified-context-a-chemist-wrote-100k-lines-of-game-code-alone-the-secret-was-the-context-4f4a</link>
      <guid>https://dev.to/n_asuy/codified-context-a-chemist-wrote-100k-lines-of-game-code-alone-the-secret-was-the-context-4f4a</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiji274fc395ane6048a4.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%2Fiji274fc395ane6048a4.png" alt=" " width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The biggest weakness of AI coding agents is that they forget everything when a session ends. Project rules, past mistakes, all gone. Developers started writing rules in files like CLAUDE.md and .cursorrules, but a study of 253 CLAUDE.md files (&lt;a href="https://arxiv.org/abs/2509.14744" rel="noopener noreferrer"&gt;Agentic Coding Manifests&lt;/a&gt;) found that a single file cannot cover a 100K-line codebase.&lt;/p&gt;

&lt;p&gt;The answer to this problem is Codified Context. In February 2026, Aristidis Vasilopoulos formalized this approach in a paper (&lt;a href="https://arxiv.org/abs/2602.20478" rel="noopener noreferrer"&gt;arXiv:2602.20478&lt;/a&gt;). It structures project knowledge inside the codebase so that agents do not start from scratch every session. The central idea is to treat documentation as infrastructure by design.&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%2Fportc1irz9iyrpxd3lz5.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%2Fportc1irz9iyrpxd3lz5.png" alt=" " width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Why Structure Works: The 3-Tier Architecture
&lt;/h3&gt;

&lt;p&gt;What makes Codified Context different from a simple rules file is that it separates knowledge into three layers by access frequency.&lt;/p&gt;

&lt;p&gt;Tier 1 is the Constitution. A single Markdown file of about 660 lines containing coding standards, build commands, and a trigger table. It is auto-loaded at the start of every session as hot memory. It defines what the agent should know before it writes a single line of code.&lt;/p&gt;

&lt;p&gt;Tier 2 is Specialized Agents. Domain-specific agent specs. In the paper's case study, 19 agents totaling about 9,300 lines. A trigger table controls routing. Change a network sync file and &lt;code&gt;network-protocol-designer&lt;/code&gt; is called automatically. By predefining which knowledge is needed for which files, agents retrieve the right context without being told.&lt;/p&gt;

&lt;p&gt;Tier 3 is the Knowledge Base. 34 spec documents totaling about 16,250 lines, searchable on demand via an MCP server. Cold memory that does not consume the context window until needed.&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%2F8c6xmwnxp2xilbnzicq2.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%2F8c6xmwnxp2xilbnzicq2.png" alt=" " width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This design solves a fundamental dilemma: load everything and the context overflows; load nothing and the agent loses track. By separating always-loaded knowledge, trigger-invoked knowledge, and search-retrieved knowledge, maximum context is maintained within a limited context window.&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%2Fxe2yzd10dxh6cpsiz6mg.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%2Fxe2yzd10dxh6cpsiz6mg.png" alt=" " width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What This Structure Produced: 100K Lines by One Person
&lt;/h3&gt;

&lt;p&gt;Vasilopoulos is a chemist, not a software engineer. Using Claude Code as his only code generation tool, he built a 108,256-line C# multiplayer game in 70 days. 405 files, 283 sessions, 2,801 human prompts. The knowledge-to-code ratio was 24.2%. For every 4 lines of code, there was about 1 line of context documentation.&lt;/p&gt;

&lt;p&gt;The 3-tier structure showed concrete results in the save system. A 283-line spec (Tier 3) was refined over 74 sessions. Zero save-related bugs were reported. Because past failures and correct patterns accumulated in the spec, the agent did not repeat the same mistakes. For UI sync routing, a 126-line spec collected lessons learned, and the next similar feature was built correctly on the first try.&lt;/p&gt;

&lt;p&gt;Maintenance cost was about 5 minutes per session for spec updates, plus a 30-45 minute review every two weeks. About 1-2 hours per week total.&lt;/p&gt;

&lt;h3&gt;
  
  
  Caveats and Tool Support
&lt;/h3&gt;

&lt;p&gt;This research has clear limits. It is an observational report from a single developer on a single project, not a controlled experiment comparing results with and without Codified Context. The implementation is specific to Claude Code, so direct applicability to other tools remains at the principle level. Other research has reported that context files can actually lower task success rates in some cases. The effect depends on conditions.&lt;/p&gt;

&lt;p&gt;That said, the principle of structuring knowledge for agents has been adopted across vendors. Claude Code has four scope levels (organization, project, user, local) with CLAUDE.md, .claude/rules/, and Auto Memory. Cursor uses Project, Team, and User Rules plus AGENTS.md, with &lt;code&gt;.cursorrules&lt;/code&gt; now legacy. GitHub Copilot supports &lt;code&gt;.github/copilot-instructions.md&lt;/code&gt;, &lt;code&gt;.github/instructions/&lt;/code&gt; directory files, and AGENTS.md. Context files are not configuration. The AI reads them and tries to follow them, but there is no guarantee. Conflicting instructions are resolved arbitrarily.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;The central insight of Codified Context is practical: if you have explained something to an AI agent twice, it should be a spec document. And those specs should be designed by deciding what to always load, what to invoke by trigger, and what to search on demand. Treating project context as infrastructure is shaping the next phase of AI-assisted development.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>architecture</category>
      <category>productivity</category>
    </item>
    <item>
      <title>MCP tool spoofing succeeds 100% of the time. A new paper maps 12 security risks across 4 agent protocols.</title>
      <dc:creator>nasuy</dc:creator>
      <pubDate>Sun, 15 Mar 2026 05:08:11 +0000</pubDate>
      <link>https://dev.to/n_asuy/mcp-tool-spoofing-succeeds-100-of-the-time-a-new-paper-maps-12-security-risks-across-4-agent-6i3</link>
      <guid>https://dev.to/n_asuy/mcp-tool-spoofing-succeeds-100-of-the-time-a-new-paper-maps-12-security-risks-across-4-agent-6i3</guid>
      <description>&lt;p&gt;[Edit] I just shipped youtube about this topic, check it out!&lt;br&gt;
  &lt;iframe src="https://www.youtube.com/embed/mIRgd7Flrec"&gt;
  &lt;/iframe&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%2Fwzufr5rpa6a6jup2aiaa.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%2Fwzufr5rpa6a6jup2aiaa.png" alt=" " width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;MCP now has over 10,000 public servers. More than 50 companies are building A2A. AI agent protocols are growing fast.&lt;/p&gt;

&lt;p&gt;But security research is not keeping up. For Agora and ANP, almost no security analysis existed before this paper.&lt;/p&gt;

&lt;p&gt;In February 2026, researchers from the Canadian Institute for Cybersecurity and Mastercard published a paper that organizes 12 risks across 4 protocols (&lt;a href="https://arxiv.org/abs/2602.11327" rel="noopener noreferrer"&gt;arXiv:2602.11327&lt;/a&gt;).&lt;/p&gt;

&lt;h3&gt;
  
  
  The Four Protocols
&lt;/h3&gt;

&lt;p&gt;AI agent communication has different layers for different jobs.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/modelcontextprotocol/modelcontextprotocol" rel="noopener noreferrer"&gt;MCP&lt;/a&gt;, released by Anthropic in November 2024, connects AI to external tools and data using OAuth 2.1. It is already in production.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/a2aproject/A2A" rel="noopener noreferrer"&gt;A2A&lt;/a&gt;, announced by Google in April 2025, handles agent-to-agent communication with OAuth 2.0+JWT and is currently in draft stage.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://arxiv.org/abs/2410.11905" rel="noopener noreferrer"&gt;Agora&lt;/a&gt;, proposed by Marro et al. in October 2024, is a meta-protocol that dynamically generates and negotiates communication rules using hash-based authentication. It remains at the research stage.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://arxiv.org/abs/2508.00007" rel="noopener noreferrer"&gt;ANP&lt;/a&gt;, proposed by Chang et al. in July 2025, provides the network layer for large-scale agent networks using W3C DID for authentication. It is also at the research stage.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These protocols do not compete. They stack on top of each other.&lt;/p&gt;

&lt;h3&gt;
  
  
  12 Protocol-Level Risks
&lt;/h3&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%2Fkeddpqg3o1rs57dgnfjr.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%2Fkeddpqg3o1rs57dgnfjr.png" alt=" " width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The paper sorts risks by lifecycle: creation, operation, and update.&lt;/p&gt;

&lt;p&gt;The creation phase has four risks. MCP and Agora have weak identity checks. MCP and ANP do not protect registration data integrity. MCP has no namespace separation, so same-name tool spoofing works. Agora and ANP have no security policy defined at all.&lt;/p&gt;

&lt;p&gt;The operation phase also has four risks. MCP does not verify what actually runs. MCP and A2A have no control over data exchange. MCP and A2A give permissions that are too broad. All four protocols lack rate limiting and backpressure.&lt;/p&gt;

&lt;p&gt;The update phase has four more. MCP and A2A never cancel old credentials. Agora and ANP have no rollback protection. MCP does not sign or verify update packages. All protocols are vulnerable to dependency drift.&lt;/p&gt;

&lt;p&gt;In short, the creation phase cannot verify who registered what. The operation phase cannot control what runs or how much access it has. The update phase leaves old credentials active and applies unsigned packages without checks.&lt;/p&gt;

&lt;h3&gt;
  
  
  MCP Experiment: Tool Spoofing
&lt;/h3&gt;

&lt;p&gt;The researchers also ran an experiment on MCP. They set up a real server and a fake server, both using the same tool name (&lt;code&gt;authorize_payment&lt;/code&gt;). Then they checked which one the AI called.&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%2F893cg9aukhk8omjoflon.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%2F893cg9aukhk8omjoflon.png" alt=" " width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In first-match mode, the AI always called the wrong server (Violation Rate = 1.0). In best-match mode, it was wrong about half the time (Violation Rate = 0.52). Without cryptographic signatures, tool spoofing works reliably.&lt;/p&gt;

&lt;h3&gt;
  
  
  Reported Incidents
&lt;/h3&gt;

&lt;p&gt;These incidents were reported on X and security news sites.&lt;/p&gt;

&lt;p&gt;OpenClaw was shown to be vulnerable to indirect prompt injection, enabling backdoor installation and C2 deployment. A supply chain attack on Cline CLI v2.3.0 also led to approximately 4,000 unauthorized installations. An RCE vulnerability in MCP Inspector (CVE-2025-49596, CVSS 9.4) allowed remote code execution just by visiting a malicious web page (now patched). On ClawHub, Snyk's Agent Scan analysis (3,984 skills) found 76 confirmed malware packages. VirusTotal scanning was added to fix this. A Cursor MCP server leaked login credentials through indirect prompt injection.&lt;/p&gt;

&lt;p&gt;Many of these reports come from X posts and have not been verified independently.&lt;/p&gt;

&lt;h3&gt;
  
  
  What to Do Now
&lt;/h3&gt;

&lt;p&gt;Use cryptographic signatures to verify identity, not just names. Add supply chain checks like signature verification, code scanning, and version pinning. Watch MITRE ATLAS. They are adding attack techniques specific to AI agents. Set the default to least privilege and enforce token scope at the protocol level.&lt;/p&gt;

&lt;p&gt;Over 10,000 MCP servers. Over 50 companies building A2A. Protocol adoption is outpacing security. The shift from "call tools by name" to "verify tools by signature" is the first step.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>mcp</category>
      <category>security</category>
    </item>
    <item>
      <title>AI Agents Don't Need to Touch the UI. WebMCP Is the Third Way.</title>
      <dc:creator>nasuy</dc:creator>
      <pubDate>Mon, 09 Mar 2026 17:48:57 +0000</pubDate>
      <link>https://dev.to/n_asuy/ai-agents-dont-need-to-touch-the-ui-webmcp-is-the-third-way-4fhp</link>
      <guid>https://dev.to/n_asuy/ai-agents-dont-need-to-touch-the-ui-webmcp-is-the-third-way-4fhp</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd5yq899g9g3uad8g96jz.webp" 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%2Fd5yq899g9g3uad8g96jz.webp" alt=" " width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;AI agents can interact with websites in two ways.&lt;br&gt;
UI actuation — simulating clicks and keystrokes — is slow and fragile. Backend integration via MCP servers or OpenAPI demands significant server-side implementation and maintenance.&lt;/p&gt;

&lt;p&gt;WebMCP is a third way that is different from both.&lt;br&gt;
The web page registers JavaScript functions as "tools." AI agents in the browser call those tools directly. Existing frontend code can be reused as-is.&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%2Fe4gm19tqtzgb7p7j975q.webp" 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%2Fe4gm19tqtzgb7p7j975q.webp" alt=" " width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The W3C Web ML Community Group (&lt;a href="https://webmachinelearning.github.io/webmcp/" rel="noopener noreferrer"&gt;https://webmachinelearning.github.io/webmcp/&lt;/a&gt;) published it on February 27, 2026 as a Draft Community Group Report. It is not an official W3C standard yet. You can try it through Chrome Early Preview Program. The editors are from Microsoft (Brandon Walderman) and Google (Khushal Sagar, Dominic Farolino).&lt;/p&gt;
&lt;h3&gt;
  
  
  Minimal Code Example
&lt;/h3&gt;

&lt;p&gt;Setting up WebMCP is surprisingly simple.&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="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;modelContext&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;navigator&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nb"&gt;navigator&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;modelContext&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;provideContext&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;tools&lt;/span&gt;&lt;span class="p"&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="s2"&gt;add-item&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Add a new item to the list&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;inputSchema&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;object&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;properties&lt;/span&gt;&lt;span class="p"&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="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;string&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
          &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;string&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="na"&gt;required&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;name&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
      &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="nf"&gt;execute&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;description&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nf"&gt;addItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;description&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;text&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;text&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`"&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;" added!`&lt;/span&gt; &lt;span class="p"&gt;}]&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}]&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;The page registers tools through &lt;code&gt;navigator.modelContext&lt;/code&gt;. The AI agent discovers available tools, calls them, and receives results. When a potentially destructive action is involved, &lt;code&gt;requestUserInteraction()&lt;/code&gt; prompts the human user for confirmation.&lt;/p&gt;

&lt;h3&gt;
  
  
  How It Differs from MCP
&lt;/h3&gt;

&lt;p&gt;People often confuse MCP and WebMCP, but they complement each other rather than compete.&lt;/p&gt;

&lt;p&gt;MCP runs on backend servers, communicates via JSON-RPC + stdio/HTTP, requires a transport layer, offers three primitives (Tools, Resources, Prompts), and needs server-side implementation. WebMCP runs inside the browser, executes page JS directly, needs no transport layer, offers Tools only (aligned with MCP's tool format), and needs no server. It reuses existing frontend code.&lt;/p&gt;

&lt;p&gt;WebMCP aligns with MCP's "tools" primitive but does not include resources or prompts. The browser acts as the mediator and handles the data layer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Human-in-the-Loop Design
&lt;/h3&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%2Fd6s95auovrkodo6tyi5o.webp" 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%2Fd6s95auovrkodo6tyi5o.webp" alt=" " width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Before any destructive action (purchasing, sending messages, etc.), &lt;code&gt;requestUserInteraction()&lt;/code&gt; asks the user for permission. The design assumes human oversight, not full autonomy.&lt;/p&gt;

&lt;h3&gt;
  
  
  Open Problems
&lt;/h3&gt;

&lt;p&gt;WebMCP still has several unresolved issues. The security specification remains marked as TODO. Headless execution (no browser UI) is unsupported. Tools are only discoverable after navigating to the page. Firefox and Safari do not support it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why You Should Watch This
&lt;/h3&gt;

&lt;p&gt;The way AI agents interact with the web is shifting — from "auto-clicking on screen" to "calling official tools the site provides." As this trend continues, designing business logic so it can be invoked from both UI and AI becomes an advantage. Per-tool permission and audit design will be necessary, and "AI-friendly websites" will become a competitive edge.&lt;/p&gt;

&lt;p&gt;Note: A separate project also named "WebMCP" exists (MiguelsPizza/WebMCP). This article covers only the W3C proposal at &lt;a href="https://github.com/webmachinelearning/webmcp" rel="noopener noreferrer"&gt;webmachinelearning/webmcp&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Until now, agents could either scrape or integrate through the backend. WebMCP adds a third option: the page hands over its own tools. It is still a draft, but it could fundamentally change how agents and the web connect.&lt;/p&gt;

</description>
      <category>webmcp</category>
      <category>mcp</category>
      <category>aiagents</category>
      <category>webdev</category>
    </item>
    <item>
      <title>The secret isn't the model. It's the harness.</title>
      <dc:creator>nasuy</dc:creator>
      <pubDate>Sat, 07 Mar 2026 18:04:44 +0000</pubDate>
      <link>https://dev.to/n_asuy/the-secret-isnt-the-model-its-the-harness-587a</link>
      <guid>https://dev.to/n_asuy/the-secret-isnt-the-model-its-the-harness-587a</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo0kn996obi5jo0w6asr5.webp" 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%2Fo0kn996obi5jo0w6asr5.webp" alt=" " width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Getting AI agents to write code is not new anymore. The real problem is not how smart the model is. The real problem is that agents do not have good environments to work in for a long time.&lt;/p&gt;

&lt;p&gt;Harness Engineering is the field that works on this problem. In November 2025, Anthropic (&lt;a href="https://www.anthropic.com/engineering/effective-harnesses-for-long-running-agents" rel="noopener noreferrer"&gt;https://www.anthropic.com/engineering/effective-harnesses-for-long-running-agents&lt;/a&gt;) published a blog post about it. In February 2026, OpenAI (&lt;a href="https://openai.com/index/harness-engineering/" rel="noopener noreferrer"&gt;https://openai.com/index/harness-engineering/&lt;/a&gt;) did the same. OpenAI said a team of 7 people made about 1 million lines of code in 1,500 PRs over 5 months. They wrote zero lines by hand (self-reported).&lt;/p&gt;

&lt;p&gt;On X, the post "the 10x skill of 2026 is Evaluation Engineering" went viral. The engineer's job is changing. From "writing code" to "building environments where agents write good code."&lt;/p&gt;

&lt;h2&gt;
  
  
  Two Parts of Harness Engineering
&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%2Fw0r584w9jxb3mkz2i71p.webp" 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%2Fw0r584w9jxb3mkz2i71p.webp" alt=" " width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agent Harness is the execution side. The setup that lets agents work well over long sessions. It automates environment setup, passes progress between sessions using progress files and Git, builds one feature at a time, and runs E2E tests automatically.&lt;/p&gt;

&lt;p&gt;Evaluation Harness is the quality side. How you score AI output with numbers, not feelings. EleutherAI has 60+ benchmarks. Inspect AI has 100+ pre-built evaluations. LLM-as-a-judge lets AI grade AI. These connect to CI/CD gates and safety testing (MLCommons AILuminate has 59,624 test prompts).&lt;/p&gt;

&lt;h2&gt;
  
  
  Anthropic's Approach: Session Handoff
&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%2Fz31p8lw7t5ah3uzqturh.webp" 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%2Fz31p8lw7t5ah3uzqturh.webp" alt=" " width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Anthropic uses a two-step system. First, a setup agent makes init.sh and a feature list (JSON). Then a coding agent builds one feature at a time: code, test, commit, repeat. Between sessions, claude-progress.txt and Git history carry the work forward.&lt;/p&gt;

&lt;h2&gt;
  
  
  OpenAI's Approach: Repo-Wide Environment
&lt;/h2&gt;

&lt;p&gt;AGENTS.md (about 100 lines) sets the rules for the whole repo. Custom linters and CI enforce those rules automatically. Instead of asking the AI nicely in a prompt, they make the tools force the rules.&lt;/p&gt;

&lt;p&gt;The methods are different, but both companies reached the same conclusion. Put knowledge in the repo, enforce rules with tools, break work into small steps and leave a trail. Both approaches have limits, though. Anthropic's method is optimized for full-stack web development and has not been tested on scientific research or financial modeling. OpenAI's environment is highly customized for one repo and cannot be copied directly to other projects.&lt;/p&gt;

&lt;p&gt;Models will keep getting smarter. But even the smartest model cannot sustain long-running development without a well-designed environment. The difference is not which model you pick. It is how you build the harness.&lt;/p&gt;




&lt;p&gt;I covers AI agent designs, skills, and context engineering from the perspective of bringing AI into real teams and workflows. Analysis grounded in primary sources. Follow for more.&lt;br&gt;
&lt;a href="https://x.com/n_asuy" rel="noopener noreferrer"&gt;https://x.com/n_asuy&lt;/a&gt;&lt;/p&gt;

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