<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Software Development on KnightLi Blog</title>
        <link>https://knightli.com/en/tags/software-development/</link>
        <description>Recent content in Software Development on KnightLi Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en</language>
        <lastBuildDate>Sun, 17 May 2026 20:02:26 +0800</lastBuildDate><atom:link href="https://knightli.com/en/tags/software-development/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>How OpenClaw Creator Peter Steinberger Sees AI Software Development: From OpenClaw to Closed-Loop Coding</title>
        <link>https://knightli.com/en/2026/05/17/peter-steinberger-ai-software-development/</link>
        <pubDate>Sun, 17 May 2026 20:02:26 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/17/peter-steinberger-ai-software-development/</guid>
        <description>&lt;p&gt;Peter Steinberger&amp;rsquo;s career is a useful lens for understanding what is changing in AI software development.&lt;/p&gt;
&lt;p&gt;He is not a newcomer who suddenly became visible because of AI. Before OpenClaw, he was already the founder of PSPDFKit, a company focused on PDF rendering, document processing, and developer tools. Products like that are hard to win with concept packaging alone. They have to deal with performance, compatibility, API design, enterprise customers, and long-term maintenance.&lt;/p&gt;
&lt;p&gt;So when Steinberger later built OpenClaw with AI tools and shared views around AI agents, personal automation, and AI coding, the point was not simply that &amp;ldquo;one person wrote a lot of code.&amp;rdquo; The more interesting part is how he combined years of software engineering experience with a new generation of AI coding agents and rethought the development process.&lt;/p&gt;
&lt;h2 id=&#34;ai-coding-is-not-a-magic-button&#34;&gt;AI coding is not a magic button
&lt;/h2&gt;&lt;p&gt;Discussions about AI coding often fall into two extremes.&lt;/p&gt;
&lt;p&gt;One side says AI can already write code, so programmers are almost obsolete.&lt;/p&gt;
&lt;p&gt;The other side says AI-generated code is unreliable, so real engineering still has to be hand-written by people.&lt;/p&gt;
&lt;p&gt;Steinberger&amp;rsquo;s experience points to a third view: AI changes the unit of operation in software development, but it does not remove engineering judgment.&lt;/p&gt;
&lt;p&gt;In the past, developers mainly worked around editing code. Requirements breakdown, architecture decisions, implementation, testing, and bug fixing all revolved around manual code changes.&lt;/p&gt;
&lt;p&gt;Once AI coding agents enter the workflow, developers increasingly manage an execution system:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Explain the goal.&lt;/li&gt;
&lt;li&gt;Provide context.&lt;/li&gt;
&lt;li&gt;Set boundaries.&lt;/li&gt;
&lt;li&gt;Let the agent modify code.&lt;/li&gt;
&lt;li&gt;Run tests and checks.&lt;/li&gt;
&lt;li&gt;Iterate based on results.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is not simply handing the keyboard to a model. It is moving humans from &amp;ldquo;typing every line&amp;rdquo; toward &amp;ldquo;defining direction, designing feedback, and judging results.&amp;rdquo;&lt;/p&gt;
&lt;h2 id=&#34;why-he-is-skeptical-of-calling-it-vibe-coding&#34;&gt;Why he is skeptical of calling it vibe coding
&lt;/h2&gt;&lt;p&gt;One phrase that often appears around Steinberger is &lt;code&gt;vibe coding&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The term originally described a new style of development: developers describe ideas in natural language, let AI generate large amounts of code, then keep adjusting based on runtime results and feedback.&lt;/p&gt;
&lt;p&gt;But Steinberger is not entirely sold on the phrase. Public coverage has noted that he sees &lt;code&gt;vibe coding&lt;/code&gt; as potentially dismissive, implying that AI-assisted development is just &amp;ldquo;generating by feel&amp;rdquo; while ignoring the skill, judgment, and experience behind it.&lt;/p&gt;
&lt;p&gt;That criticism makes sense.&lt;/p&gt;
&lt;p&gt;Effective AI coding is not about typing a casual sentence and trusting the model&amp;rsquo;s output. It requires:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Breaking vague requirements into executable tasks.&lt;/li&gt;
&lt;li&gt;Detecting when the model misunderstands the goal.&lt;/li&gt;
&lt;li&gt;Designing tests and acceptance criteria.&lt;/li&gt;
&lt;li&gt;Judging whether the code structure will remain maintainable.&lt;/li&gt;
&lt;li&gt;Knowing when to stop generating and switch to human review.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In other words, AI reduces the friction of writing code, but it does not reduce the responsibility of understanding the system.&lt;/p&gt;
&lt;h2 id=&#34;the-loop-is-the-key&#34;&gt;The loop is the key
&lt;/h2&gt;&lt;p&gt;One idea often associated with Steinberger&amp;rsquo;s interviews and writing is the importance of the loop.&lt;/p&gt;
&lt;p&gt;Letting AI generate code is open-loop.&lt;/p&gt;
&lt;p&gt;Letting AI generate code, run it, read errors, fix problems, and run tests again is closer to closed-loop development.&lt;/p&gt;
&lt;p&gt;That difference matters.&lt;/p&gt;
&lt;p&gt;Open-loop generation easily creates software that looks usable on the surface. The page opens, features appear to exist, and there is plenty of code. But once it enters a real environment, problems with state management, permissions, exception handling, edge cases, and deployment quickly appear.&lt;/p&gt;
&lt;p&gt;Closed-loop development means output must be constrained by feedback. The simplest loop is:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Write down the goal clearly.&lt;/li&gt;
&lt;li&gt;Let AI modify the code.&lt;/li&gt;
&lt;li&gt;Automatically run tests, type checks, lint, or a build.&lt;/li&gt;
&lt;li&gt;Feed errors back to AI.&lt;/li&gt;
&lt;li&gt;Repeat until it passes.&lt;/li&gt;
&lt;li&gt;Let a human review the critical path.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This is where AI software development can truly improve efficiency. Not because the model gets everything right the first time, but because it can participate quickly in a cycle of generation, validation, and repair.&lt;/p&gt;
&lt;h2 id=&#34;more-experience-makes-ai-more-useful&#34;&gt;More experience makes AI more useful
&lt;/h2&gt;&lt;p&gt;One of the easiest misconceptions about AI coding is that experience no longer matters.&lt;/p&gt;
&lt;p&gt;Steinberger&amp;rsquo;s case suggests the opposite: experience becomes more important, but its role changes.&lt;/p&gt;
&lt;p&gt;An experienced engineer is better at deciding:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Which tasks are suitable for an agent.&lt;/li&gt;
&lt;li&gt;Which modules need tests first.&lt;/li&gt;
&lt;li&gt;Which changes are too risky for broad AI refactoring.&lt;/li&gt;
&lt;li&gt;Which generated code merely looks plausible.&lt;/li&gt;
&lt;li&gt;Which problems should be solved through architecture rather than more patches.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;AI can generate many candidate solutions. The more candidates you have, the more judgment you need. An inexperienced person may be impressed by &amp;ldquo;it runs.&amp;rdquo; An experienced engineer asks: can it be maintained? Can it scale? Does it break a security boundary? Can we debug it when something goes wrong?&lt;/p&gt;
&lt;p&gt;That is why AI coding agents do not turn software engineering into pure chat. They outsource part of the execution work while amplifying planning, review, validation, and trade-off decisions.&lt;/p&gt;
&lt;h2 id=&#34;openclaw-matters-beyond-the-project-itself&#34;&gt;OpenClaw matters beyond the project itself
&lt;/h2&gt;&lt;p&gt;OpenClaw drew attention not only because it is an open-source AI agent, and not only because it grew quickly.&lt;/p&gt;
&lt;p&gt;It is also a signal: developers increasingly want AI to do more than answer questions. They want it to connect to real tools and perform real actions.&lt;/p&gt;
&lt;p&gt;Traditional chatbots stay inside the chat box. They can explain code, write drafts, and give advice, but people still need to copy, paste, open software, and run commands.&lt;/p&gt;
&lt;p&gt;The agent direction connects models to tools:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;File systems.&lt;/li&gt;
&lt;li&gt;Browsers.&lt;/li&gt;
&lt;li&gt;Terminals.&lt;/li&gt;
&lt;li&gt;Email.&lt;/li&gt;
&lt;li&gt;Calendars.&lt;/li&gt;
&lt;li&gt;Third-party services.&lt;/li&gt;
&lt;li&gt;Project repositories.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Once models can use those tools, the boundaries of software development shift. AI is no longer just code completion. It can participate in project reading, task decomposition, file editing, test execution, PR preparation, and workflow automation.&lt;/p&gt;
&lt;p&gt;That is also why Steinberger&amp;rsquo;s move to OpenAI drew attention. He represents not just a single developer story, but a product direction: personal agents moving from demos into everyday work.&lt;/p&gt;
&lt;h2 id=&#34;what-this-means-for-ordinary-developers&#34;&gt;What this means for ordinary developers
&lt;/h2&gt;&lt;p&gt;For ordinary developers, Steinberger&amp;rsquo;s experience is not something everyone can copy directly.&lt;/p&gt;
&lt;p&gt;Not everyone can manage multiple agents at once. Not every project is suited to heavy AI generation. Not every team accepts a workflow of &amp;ldquo;generate first, iterate quickly.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;But several lessons are useful.&lt;/p&gt;
&lt;p&gt;First, write tasks clearly.&lt;/p&gt;
&lt;p&gt;AI is sensitive to vague goals. If you say &amp;ldquo;optimize this,&amp;rdquo; it may change style, structure, features, and logic. If you say &amp;ldquo;change the login failure message from English to Chinese without altering the authentication flow,&amp;rdquo; the result is usually more controllable.&lt;/p&gt;
&lt;p&gt;Second, standardize validation commands.&lt;/p&gt;
&lt;p&gt;If a project has no tests, no build command, and no lint, AI has trouble forming a loop. Even basic commands like &lt;code&gt;npm test&lt;/code&gt;, &lt;code&gt;go test ./...&lt;/code&gt;, &lt;code&gt;pytest&lt;/code&gt;, or &lt;code&gt;hugo&lt;/code&gt; are better than relying only on visual inspection.&lt;/p&gt;
&lt;p&gt;Third, control the scope of changes.&lt;/p&gt;
&lt;p&gt;Having AI handle one module, one bug, or one page at a time is usually more reliable than asking it to &amp;ldquo;refactor the whole project.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Fourth, keep human review.&lt;/p&gt;
&lt;p&gt;For authentication, payments, permissions, data deletion, deployment scripts, database migrations, and security configuration, do not lower the review bar just because the code was generated by AI.&lt;/p&gt;
&lt;p&gt;Fifth, review prompts and failure patterns.&lt;/p&gt;
&lt;p&gt;If AI often misunderstands a certain type of task, write those constraints into project rules, agent instructions, or skill files. AI coding capability comes not only from the model, but also from the work environment you build around it.&lt;/p&gt;
&lt;h2 id=&#34;where-ai-software-development-is-going&#34;&gt;Where AI software development is going
&lt;/h2&gt;&lt;p&gt;Steinberger&amp;rsquo;s story suggests that AI software development is moving from &amp;ldquo;helping write code&amp;rdquo; toward &amp;ldquo;organizing software production workflows.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Early AI coding tools were mainly useful for function completion, error explanation, and template generation. The shift now is that agents can work across files, call tools, run checks, and continue fixing based on feedback.&lt;/p&gt;
&lt;p&gt;This points to several trends.&lt;/p&gt;
&lt;p&gt;First, the productivity ceiling for individual developers will rise.&lt;/p&gt;
&lt;p&gt;One person can push more prototypes, scripts, internal tools, and small products. But higher output does not automatically mean higher quality. The faster code is generated, the more validation matters.&lt;/p&gt;
&lt;p&gt;Second, project structure becomes more important.&lt;/p&gt;
&lt;p&gt;The clearer the code, tests, and documentation, the easier it is for AI to make correct changes. Messy projects are hard for humans and hard for AI.&lt;/p&gt;
&lt;p&gt;Third, software engineers will look more like workflow designers.&lt;/p&gt;
&lt;p&gt;In the future, what matters will not only be whether someone knows a programming language, but whether they can organize requirements, context, tools, tests, deployment, and permissions into a controlled loop.&lt;/p&gt;
&lt;p&gt;Fourth, security boundaries become more sensitive.&lt;/p&gt;
&lt;p&gt;If an agent can do things, it can also do the wrong things. If it can read files, run commands, and access services, then permissions, audit, and rollback become infrastructure for AI development environments.&lt;/p&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;The most valuable part of Peter Steinberger&amp;rsquo;s view of AI software development is not how much code AI generated. It is the development posture he demonstrates.&lt;/p&gt;
&lt;p&gt;Humans are no longer only typing line by line inside an editor. They are designing goals, managing agents, building feedback loops, reviewing results, and adjusting the system. Code remains important, but it is no longer the only center of labor.&lt;/p&gt;
&lt;p&gt;If traditional software development emphasized &amp;ldquo;writing the code correctly,&amp;rdquo; AI software development increasingly emphasizes &amp;ldquo;making the system continuously produce verifiably correct results.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;This is not just about lowering the engineering barrier. It changes the shape of engineering ability: from manual implementation toward task decomposition, context management, tool orchestration, automated validation, and final judgment.&lt;/p&gt;
&lt;h2 id=&#34;references&#34;&gt;References
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://techcrunch.com/2026/02/25/openclaw-creators-advice-to-ai-builders-is-to-be-more-playful-and-allow-yourself-time-to-improve/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;TechCrunch: OpenClaw creator&amp;rsquo;s advice to AI builders&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://builtin.com/articles/openclaw-founder-to-openai-analysis&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Built In: What Is OpenAI Getting From the OpenClaw Deal?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://podwise.ai/dashboard/episodes/7026858&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;The Pragmatic Engineer: The creator of Clawd: I ship code I don&amp;rsquo;t read&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.teamday.ai/ai/steinberger-openclaw-builders-unscripted-openai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;TeamDay: Peter Steinberger: Building OpenClaw as a Solo Dev&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Karpathy&#39;s 65-Line CLAUDE.md: Helping AI Coding Avoid Three Common Mistakes</title>
        <link>https://knightli.com/en/2026/04/19/karpathy-claude-md-ai-coding-rules/</link>
        <pubDate>Sun, 19 Apr 2026 18:27:23 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/04/19/karpathy-claude-md-ai-coding-rules/</guid>
        <description>&lt;p&gt;A GitHub project about AI coding has been getting a lot of attention recently. Its core is not a complex codebase, but a roughly 65-line &lt;code&gt;CLAUDE.md&lt;/code&gt; file. The reason it attracted so many stars is not technical complexity. It is that it captures problems many people repeatedly run into when using AI to write code.&lt;/p&gt;
&lt;p&gt;The background starts with Andrej Karpathy&amp;rsquo;s observations on AI coding. Karpathy is an influential educator and engineer in AI: a Stanford PhD, an early OpenAI contributor, and a former Tesla AI leader responsible for Autopilot&amp;rsquo;s vision system. He has continued to share his views on large models, education, and AI tools, so his comments on changes in programming workflows tend to draw a lot of attention from developers.&lt;/p&gt;
&lt;p&gt;He once said that after using Claude Code for a few weeks, his programming style changed noticeably. Previously it was roughly 80% handwritten code and 20% AI assistance. Now it is closer to 80% code written by AI and 20% edits by himself. He described it as &amp;ldquo;programming in English&amp;rdquo;, telling an LLM what to write through natural language.&lt;/p&gt;
&lt;p&gt;But he also pointed out several recurring problems in AI coding.&lt;/p&gt;
&lt;h2 id=&#34;01-wrong-assumptions&#34;&gt;01 Wrong Assumptions
&lt;/h2&gt;&lt;p&gt;The first problem is that models easily make assumptions on behalf of the user, then keep writing along that path. They do not always manage their own confusion, and they do not always stop to ask questions when the requirement is ambiguous.&lt;/p&gt;
&lt;p&gt;For example, if the user only says &amp;ldquo;add a user export feature&amp;rdquo;, the model might assume it should export all users, output JSON, write to a local file, and skip any confirmation around permissions or fields. Only after the code is done does the user discover that the model&amp;rsquo;s understanding does not match the real scenario.&lt;/p&gt;
&lt;p&gt;A better approach is to list the uncertainties first: should it export all users or filtered results? Should it trigger a browser download or run as a background job? Which fields are needed? How large is the data set? Are there permission constraints? If these questions are not clarified, writing faster only means drifting farther.&lt;/p&gt;
&lt;h2 id=&#34;02-over-complexity&#34;&gt;02 Over-Complexity
&lt;/h2&gt;&lt;p&gt;The second problem is that models often turn simple problems into complex ones. A task that could be handled with one function might receive abstract classes, strategy patterns, factory patterns, configuration layers, and a pile of extension points that may never be needed.&lt;/p&gt;
&lt;p&gt;This kind of code can look engineered, but in practice it increases maintenance cost. AI is especially good at quickly generating large structures, but it does not always judge whether those structures are necessary. The result is that a task solvable in 100 lines becomes inflated into 1,000 lines.&lt;/p&gt;
&lt;p&gt;The test is straightforward: would a senior engineer look at the change and think it is over-designed? If the answer is yes, remove the extra layers and solve the current problem with the least code needed.&lt;/p&gt;
&lt;h2 id=&#34;03-collateral-damage&#34;&gt;03 Collateral Damage
&lt;/h2&gt;&lt;p&gt;The third problem is that models sometimes modify or delete code they do not fully understand. While fixing a small bug, they may casually change comments, reformat nearby code, clean up imports that look unused, or even touch logic unrelated to the current task.&lt;/p&gt;
&lt;p&gt;These &amp;ldquo;drive-by improvements&amp;rdquo; are risky because they expand the change scope and make review harder. The user may only want to fix a validator crash caused by an empty email, but the model may also enhance email validation, add username validation, and rewrite docstrings. In the end, it becomes hard to tell which line changed behavior.&lt;/p&gt;
&lt;p&gt;A safer rule is: only change what must be changed, and only clean up issues caused by your own change. Existing dead code, formatting problems, or historical baggage should not be touched unless the task explicitly asks for it. At most, mention it.&lt;/p&gt;
&lt;h2 id=&#34;04-turning-complaints-into-claudemd&#34;&gt;04 Turning Complaints Into CLAUDE.md
&lt;/h2&gt;&lt;p&gt;After Karpathy&amp;rsquo;s comments spread widely, developer Forrest Cheung did something clever: he organized these complaints into executable behavior rules and put them into a &lt;code&gt;CLAUDE.md&lt;/code&gt; file.&lt;/p&gt;
&lt;p&gt;The project does not contain complicated code. Its key idea is to turn the most failure-prone parts of AI coding into clear working rules. They can be summarized as four principles.&lt;/p&gt;
&lt;p&gt;The first is to think before writing. Do not silently assume. Do not hide confusion. If a requirement has multiple interpretations, list them. If there is a simpler approach, say so. Ask when clarification is needed, and push back when needed.&lt;/p&gt;
&lt;p&gt;The second is to keep things simple. Do not add features that were not requested. Do not abstract one-off code. Do not add unnecessary configuration. Do not write large amounts of defensive code for extremely unlikely scenarios. If 50 lines can solve it, do not write 200.&lt;/p&gt;
&lt;p&gt;The third is to make precise changes. Every changed line should trace directly back to the user&amp;rsquo;s request. Do not improve nearby code as a side quest. Do not refactor something that is not broken. Match the existing project style as much as possible.&lt;/p&gt;
&lt;p&gt;The fourth is goal-driven execution. Do not give the model only a vague instruction. Give it a verifiable success criterion. For example, &amp;ldquo;fix the bug&amp;rdquo; can become &amp;ldquo;write a test that reproduces the bug, then make it pass&amp;rdquo;; &amp;ldquo;add validation&amp;rdquo; can become &amp;ldquo;write invalid-input tests and make them pass&amp;rdquo;. The clearer the success criterion, the easier it is for the model to loop toward completion.&lt;/p&gt;
&lt;h2 id=&#34;05-why-it-took-off&#34;&gt;05 Why It Took Off
&lt;/h2&gt;&lt;p&gt;This project became popular not because the content is mysterious, but because it is close to real development work.&lt;/p&gt;
&lt;p&gt;Many people using AI for coding have seen similar scenes: the model confidently misunderstands the requirement, the code gets more complex as it goes, or it touches places it should not touch. The value of &lt;code&gt;CLAUDE.md&lt;/code&gt; is that it turns those experiences into collaboration rules that can be placed inside a project.&lt;/p&gt;
&lt;p&gt;The entry cost is also low: one file can start making a difference, with no complicated integration. Combined with Karpathy&amp;rsquo;s influence and the project&amp;rsquo;s practical comparison examples, it naturally spread through the Claude Code user base and the broader AI coding community.&lt;/p&gt;
&lt;p&gt;More importantly, these rules are not only for Claude Code. No matter which AI coding tool you use, the underlying issues are similar: the model needs to know when to ask, when to simplify, when to stop, and how to decide that the task is complete.&lt;/p&gt;
&lt;h2 id=&#34;06-what-developers-can-take-away&#34;&gt;06 What Developers Can Take Away
&lt;/h2&gt;&lt;p&gt;The lesson for ordinary developers is simple: AI coding is not about throwing one sentence at a model and waiting for a miracle. The effective approach is to give the model boundaries.&lt;/p&gt;
&lt;p&gt;When the requirement is unclear, ask it to expose its assumptions first. When the implementation starts getting complicated, ask it to return to the smallest viable solution. When changing code, keep it focused on the task goal. When finishing work, use tests, commands, or explicit checkpoints to verify the result.&lt;/p&gt;
&lt;p&gt;AI is already very capable at writing code, but it still needs good collaboration constraints. The fact that a short &lt;code&gt;CLAUDE.md&lt;/code&gt; can attract so much attention shows that developers do not only need smarter models. They also need more reliable ways of working.&lt;/p&gt;
&lt;p&gt;In short:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Think before writing to reduce wrong assumptions.&lt;/li&gt;
&lt;li&gt;Keep things simple to avoid over-design.&lt;/li&gt;
&lt;li&gt;Make precise changes to control change scope.&lt;/li&gt;
&lt;li&gt;Work toward goals with verifiable success criteria.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These four rules are not complicated, but they are practical. The prerequisite for AI coding to truly improve efficiency is not making the model write more. It is making it write more accurately, with less code, and under better control.&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
