Glean 拾遗
日刊 /2026-08-31 / AI 原生开发复盘:流程没变,角色变了——从 Issue 到功能上线

AI 原生开发复盘:流程没变,角色变了——从 Issue 到功能上线

原文 baoyu.io 收录 2026-08-31 16:53 阅读 9 min
AI 解读

作者用 Claude Code(Fable 5)为自己的字幕转录 App(BaoCut)从零添加远程转录功能,并完整复盘全过程。核心认知:AI 原生开发并没有发明新流程——可行性分析、设计文档、原型、编码、测试一个不少;变化的是执行主体,Agent 负责分析和执行,人只在关键路径做判断。文章逐环节拆解:让 Agent 做可行性分析后自己拍板选方案 A(App 内嵌转录服务);把决策固化进设计文档,作为后续 Agent Session 的上下文入口;用高精度原型把需求、交互、视觉一次确认,说明原型阶段修改成本远低于开发后返工;编码阶段靠 /goal 命令让 Agent 按里程碑自测、自截图,作者跳过 Code Review 只做黑盒测试;最后以路人视角验证流程。作者还给了两个反直觉结论:大部分开发类编码 Skills 是多余的,瓶颈已转移到代码两侧的设计确认与测试部署;文档从附属品升格为人和 Agent、Session 与 Session 之间的桥梁。适合用 AI 编码工具但尚未跑通完整工作流的一线开发者。

原文 9 分钟
原文 baoyu.io ↗
§ 1

§ 2

Many people think of AI development as “getting AI to write code for me.”

That understanding isn’t wrong, but it’s incomplete. Writing code is only one step in the whole software development process. In the AI era, it is actually the step that changes least and worries you least, because today’s large models are already extremely well trained at coding—a simple natural language prompt is enough.

The truly interesting changes are outside the code: how requirements are analyzed, how solutions are designed, how prototypes are made, how tests are run. These “beyond the code” matters are where AI-native development really changes the game.

A few days ago, I used AI to add a new feature to my own app. The process was fairly typical, so it’s worth a complete retrospective.

很多人对 AI 开发的理解停留在“让 AI 帮我写代码”。

这个理解没有错,但只不完全对。写代码在整个软件开发流程中只是一个环节,而且在 AI 时代,它反而是变化最小、最不需要操心的环节,因为现在的大模型在编码方面已经训练得极好了,简单的自然语言提示词就够了。

真正有意思的变化是在代码之外:需求怎么分析、方案怎么设计、原型怎么做、测试怎么跑,这些“写代码之外”的事情,才是 AI 原生开发真正改变游戏规则的地方。

前几天我用 AI 给自己的 App 加了一个新功能,过程比较典型,值得拿出来完整复盘一下。

§ 3

Here’s the conclusion first: the process hasn’t changed, but the roles have.

Before diving into the case, let me state the core insight:

AI-native development is still fundamentally the traditional software development flow—feasibility analysis, solution design, prototype design, coding, and test verification. Not one of these steps is missing.

What has changed? The executor.

Previously, humans did every step by hand. Now, humans become commanders and agents become executors. Humans only confirm and make decisions on the critical path; the concrete analysis, design, coding, and debugging are all left to agents.

To put it metaphorically, you get promoted from an individual contributor programmer to a technical director. You no longer write every line of code, but you decide whether to do it, how to do it, and whether it’s done right.

Role shift between humans and agents in AI-native development

先说结论:流程没变,角色变了

在展开案例之前,先说一个最核心的认知:

AI 原生开发,本质上还是传统的软件开发流程——可行性分析、方案设计、原型设计、编码实现、测试验证。这些步骤一个都没少。

变的是什么?执行主体。

以前每个环节都是人亲手干。现在,人变成了指挥官,Agent 变成了执行者。人只在关键路径上做确认和决策,但具体的分析、设计、编码、调试,全部交给 Agent 去执行。

打个比方:你从一线程序员升级成了技术总监。你不再写每一行代码,但你要决定做不做、怎么做、做得对不对。

AI 原生开发中人和 Agent 的角色转变

§ 4

Doesn’t sound like a big deal? But once you run through a complete flow yourself, you’ll realize the efficiency gain is an order of magnitude.

这听起来好像没什么大不了?但当你真正跑通一遍完整流程,你会发现效率提升是数量级的。

§ 5

The feature came from a GitHub issue. A user left a comment on my subtitle transcription/translation app (BaoCut) asking whether remote transcription could be added.

The scenario was very concrete: he had two computers—one high-performance machine A for heavy compute, and another everyday office machine B. He wanted to use BaoCut on machine B while offloading the compute-hungry transcription tasks to machine A.

I immediately felt this was a good request: the scenario is reasonable, it creates value for users, and it fits the product’s positioning.

这个功能起源于一个 GitHub Issue。有用户给我的字幕转录翻译 App(BaoCut)留言,问能不能加上远程转录功能。

场景很具体:他有两台电脑,一台性能好算力强的电脑 A,另一台是日常办公用的电脑 B。他想在电脑 B 上用 BaoCut 的时候,把需要算力的转录任务丢给电脑 A 去跑。

我一看就觉得这是个好需求:场景合理,对用户有价值,和产品定位也吻合。

§ 6

But I didn’t immediately open the editor and start coding.

This is the step most likely to be skipped in the whole flow—and the one that should never be skipped.

Decide whether to do it before doing it. That sounds like common sense, but I’ve paid the price many times.

Just a few days ago, for example, I built a feature that used a local text model to assist in splitting and aligning subtitles. During feasibility analysis, I thought there was no technical problem. Only after finishing it and using it did I realize the result was poor, so I ended up cutting it—wasting several days and a pile of tokens. See, even with feasibility analysis, judgment can sometimes be off. But that doesn’t mean feasibility analysis is useless. Without it, you’d fall into even more traps.

It’s a bet on expected value: most of the time it helps you avoid detours, and occasionally it misses.

Feasibility analysis usually looks at two dimensions:

Product angle: Does this feature have value? Does it fit the app’s positioning?

Technical angle: Can it be done technically? Is the cost controllable?

This time, I had already judged the product angle—it was worth doing. So I only needed to focus on technical feasibility.

但我没有马上打开编辑器写代码。

这是整个流程中最容易被跳过、但最不该被跳过的一步。

先决定要不要做,再去做。这句话听起来像废话,但我吃过太多亏了。

就拿前几天来说,我还做了一个用本地文本模型辅助拆分对齐字幕的功能,做可行性分析的时候觉得技术上没问题,做完了实际体验才发现效果很糟糕,最后还是砍掉了,浪费了好几天时间和一堆 token。你看,就算做了可行性分析,有时候也会判断失误。但这不代表可行性分析没用,没有这一步,你踩的坑只会更多。

它是一个期望值的赌注:大部分时候能帮你避开弯路,偶尔也会看走眼。

可行性分析通常看两个层面:

产品角度:这个功能有没有价值?和 App 的定位是不是匹配?

技术角度:技术上能不能做到?成本是不是可控?

这次产品层面我已经判断了——值得做。所以我只需要聚焦在技术可行性上。

§ 7

I sent the user’s original request to Claude Code and asked it to do a feasibility analysis in the context of the current project. After analysis, it concluded: feasible, and listed several technical options.

I quickly scanned the options and formed my own judgment:

Options 0 and C required no code changes, but they were not user-friendly at all—users would have to set up their own ASR server, which ordinary users can’t handle.

Option A was the best: install the app and you can start your own transcription service, making it the simplest for users.

Option B was not friendly enough for Windows.

So I decided to go with option A, and at the same time added the extra feature from option 0: providing an HTTP transcription API.

Notice the pattern here: the agent does the analysis and lays out options; the human makes the final judgment and decision. This is what “human confirmation on the critical path” means—you don’t need to research every technical detail yourself, but you need to make the final call based on your product judgment and technical instincts.

我把用户的原始需求发给 Claude Code,让它结合项目现状做一个可行性分析。它分析完给出了判断:可行,并列出了几个技术方案。

我快速扫了一遍这些方案,很快有了自己的判断:

方案 0 和方案 C 不需要改代码,但对用户太不友好,得自己搭 ASR 服务器,普通用户玩不转

方案 A 最优,装了 App 就能启动自己的转录服务,对用户来说最简单

方案 B 对 Windows 不够友好

所以决定按方案 A 推进,同时把方案 0 中“提供 HTTP 转录 API”这个附加功能一并加上。

注意这里的模式:Agent 做分析和罗列方案,人做最终判断和拍板。这就是“人在关键路径确认”的含义——你不需要自己去研究每个技术方案的细节,但你需要基于自己的产品判断和技术直觉做最终决策。

§ 8

Once feasibility and the technical direction were settled, I still didn’t jump to code. The next step was to have an agent write a design document.

Why a document? This touches a key insight of AI-native development:

Documents have taken on an entirely new role in the AI era: they are the bridge between humans and agents, and between agents and agents.

In traditional development, documentation is often a burden—it goes stale after being written, and people don’t like reading it. But in AI-native development, documents have become the most important intermediary medium for two reasons:

First, a document is the vehicle for humans to review and revise. The agent writes the proposal into a document, and you can read it through, check whether the direction is right and whether the details have problems, and edit directly in the document.

Second, a document is the medium for passing context between agent sessions. Every agent session has a finite context window. When you move from “design” to “development,” you often start a new session. The previous session’s reasoning, decision rationale, and technical plan all need to be passed to the next session via the document. Without it, the next session starts from zero.

In other words, a document is the “memory medium” of AI-native development.

Documents connect humans and different agent sessions

确定了可行性和技术方向,我还是没有马上写代码。下一步是让 Agent 写设计文档。

为什么需要文档?这里涉及到 AI 原生开发的一个关键认知:

文档在 AI 时代有了全新的角色,它是人和 Agent 之间、以及 Agent 和 Agent 之间的桥梁。

传统开发中,文档经常是一种负担,写完就过时了,大家也不爱看。但在 AI 原生开发中,文档变成了最重要的中间媒介,原因有两个:

第一,文档是给人确认和修改的载体。Agent 把方案写成文档,你可以通读一遍,看方向对不对,细节有没有问题,直接在文档上改。

第二,文档是 Agent Session 之间传递上下文的媒介。每一个 Agent Session 的上下文窗口是有限的,当你从“设计”进入“开发”,往往是一个新的 Session。前一个 Session 的思考过程、决策依据、技术方案,都需要通过文档传递给下一个 Session。没有文档,下一个 Session 就是从零开始。

换句话说,文档是 AI 原生开发中的“记忆载体”。

文档连接人类与不同 Agent Session

§ 9

The design document I asked for was a hybrid of product design and technical design: it described what the requirement was, how to architect it, and how to define the interfaces. The goal was to solidify this information so that the agent implementing it later would have clear references, and the human would have an anchor point to check the direction.

Ideally, at the end of each stage, you should produce an archivable deliverable—requirements doc, design proposal, prototype, code, and tests. And you should tie these deliverables to a version control tool like git to track all changes. Then the deliverables themselves can act as an audit trail: who raised the requirement, what the agent produced, and who approved it.

I admit I cut a corner this time: after the design document was written, I went straight to prototyping, mainly because the options from the feasibility phase had no issues and I trusted Fable 5 quite a bit. But for a more complex project, you should carefully review the design document—it costs far less than overturning code after it’s written.

There’s also a critical operational detail: the confirmed document is the entire starting point for the next agent session. When you move from “design” to “development,” it’s often a new session. You don’t need to re-explain the whole story to the agent; you just say, “Implement according to docs/remote-transcription.md.” All decisions and details are already in the document, so the new session can start executing after reading it.

我这里让写的设计文档是产品设计和技术设计的混合体——描述清楚需求是什么、架构怎么设计、接口怎么定义。目的是把这些信息固化下来,让后续实施的 Agent 有明确的参照,也让人类有一个可以检查方向的锚点。

理想状态下,每个阶段结束时都应该生成一份可以留档的交付物,如需求文档、设计方案、原型设计、代码和测试。并且这些产出物要和 git 这样的版本管理工具结合起来,跟踪所有变更,那么这些交付物本身还可以作为审计记录:谁提的需求、Agent 产出了什么、谁批准了它。

我承认这次我偷了个懒,设计文档写完后直接去做原型了,主要是之前可行性分析阶段给的方案没什么问题,我也比较信任 Fable 5。但如果是更复杂的项目,你应该仔细审查设计文档,这个成本远低于写完代码再推翻。

这里还有一个关键的操作细节:确认后的文档,就是下一个 Agent Session 的全部起点。 当你从“设计”进入“开发”,往往是一个新的 Session。这时候你不需要重新向 Agent 解释来龙去脉,只需要一句话:“按 docs/remote-transcription.md 实现”。文档里已经写好了所有决策和细节,新的 Session 读完文档就能开始执行。

§ 10

This is one of the areas where I think AI-native development changes the most.

In the traditional flow, requirements documents, prototype design, and UI design were three separate steps done by different people: product managers wrote requirements, interaction designers made prototypes, and UI designers created visual mockups. Every handoff lost information, and every change required coordination among many parties.

With AI, all three can be merged into a single step—high-fidelity prototype design. What does that mean? The prototype you produce is not a wireframe; it’s a high-fidelity design close to the final product, directly including interaction logic and visual design.

This was previously infeasible and extremely costly—you couldn’t expect one person to have product thinking, interaction design, and UI design skills all at once. Even if someone did, a high-fidelity prototype would take days. But now, one AI agent plus a good Design Skill (first choice: Claude Design; you can also use my baoyu-design, which auto-triggers when you mention “prototype design” in the conversation) can quickly produce a high-fidelity prototype.

这一步是我认为 AI 原生开发中变化最大的环节之一。

传统流程里,需求文档、原型设计、UI 设计是三个独立的步骤,由不同的人完成:产品经理写需求,交互设计师做原型,UI 设计师做视觉稿。每一次交接都有信息损耗,每一次修改都需要多方协调。

在 AI 的加持下,这三者可以合并成一个步骤——高精度原型设计。什么意思?就是你做出来的原型,不是线框图,而是接近最终成品的高保真设计,直接包含了交互逻辑和视觉设计。

这在以前是不可行的,成本极高——你不可能要求一个人同时具备产品思维、交互设计和 UI 设计的能力,就算有,做一个高保真原型也要好几天。但现在,一个 AI Agent 加上一个好的 Design Skill(首推 Claude Design,也可以用我的 baoyu-design,只要在对话中说“原型设计”就能自动触发),就能快速产出高精度原型。

§ 11

My app has a companion prototype design page; every time I add or change a feature, I update the prototype first. With the design document as the foundation, prototype design went relatively smoothly, and the first version already looked good. It added a new tab in the settings page to enable the transcription service and discover other nodes on the network.

But a finished prototype doesn’t mean the work is done. At the prototype stage, the cost of changes is relatively low, while making changes after the real product is built is very expensive. So this stage is worth spending time on, iterating again and again.

I adjusted the prototype many times. First, I changed the layout from a list to tabs, separating “start service” and “access other nodes.” In my view, these are two different usage scenarios; mixing them together would confuse users. Then I added icons to show service status, so users could tell at a glance whether the service was on or off.

Later, I found that putting this feature in the settings page was inconvenient—users need to check the service status frequently, and burying it in settings made it too deep. So I moved it to the main screen. After several rounds back and forth, I finally felt it was good enough.

我的 App 有一个配套的原型设计页面,每次增加或修改功能,都会先更新原型。有了设计文档做基础,原型设计就会相对顺利,第一个版本就有不错的效果,它在设置页面里添加了一个新的选项卡,可以开启转录服务、发现网络上的其他节点。

但原型出来了不代表就完事了。原型设计阶段的修改成本相对很低,而做出真正的产品后再改成本就很高了。 所以这个阶段值得花时间反复打磨。

我在原型上反复调整了很多次。先是把布局从列表改成了 Tab,把“开启服务”和“访问其他节点”分开,在我看来这是两个不同的使用场景,混在一起用户会困惑。然后加上了图标来显示服务状态,让用户一眼就知道服务是开着还是关着。

后来我又发现把这个功能放在设置页面里并不方便,用户需要频繁查看服务状态,埋在设置里太深了。所以又把它挪到了主界面。来来回回好几轮,终于觉得差不多了。

§ 12

Notice the pattern here: for every adjustment, I only describe in natural language the change I want, and the agent updates the prototype. My attention is entirely on product-level judgments—Is this interaction friendly? Is this interface beautiful? Does it feel natural for users?—rather than obsessing over pixels and layout implementation details.

Why shouldn’t you skip prototype confirmation? Because once the UI and interactions have been developed, the cost of changes increases exponentially. You’d have to change code logic, styles, state management, and test cases. But at the prototype stage, changing a layout can be as simple as saying one sentence.

注意这里的模式:每一次调整,我只需要用自然语言描述我想要什么变化,Agent 就会修改原型。我的注意力全部放在“这个交互是不是友好”、“这个界面是不是美观”、“用户使用起来是不是自然”这些产品层面的判断上,而不是在纠结像素和布局的实现细节。

为什么原型确认这一步不建议你省掉? 因为界面和交互一旦开发完成,修改的成本会呈指数级上升。你不仅要改代码逻辑,还要改样式、改状态管理、改测试用例。但在原型阶段,改一个布局可能就是一句话的事。

§ 13

If you’ve reached this step, you already have the design document and a confirmed high-fidelity prototype. Asking an agent to write the code is now a very simple thing for today’s models.

Together with the /goal command, I sent the design document and prototype to Claude Code (Fable 5) and asked it to implement the milestones one by one as planned in the document. It plans the implementation order itself, writes the code, runs tests, and even takes screenshots to verify the results.

There’s an easily overlooked technique I often emphasize: letting the agent verify its own work reduces how often you need to intervene. After writing a piece of code, it automatically runs tests; if something fails, it debugs and fixes it. After changing an interface, it takes a screenshot to confirm the effect. This gives the agent its own feedback loop, so it checks itself before you see the result. When you, as the human, do final confirmation, you’re already looking at results the agent has verified, not a rough first draft.

This is also why merging some confirmation steps (for example, skipping Code Review and going straight to black-box testing) is relatively safe. The agent is capable enough, and with self-verification during development, the output quality is high.

At this stage, there is very little for the human to do—mainly wait and glance at the progress occasionally.

如果你走到这一步,手上已经有了设计文档和确认过的高精度原型,那么让 Agent 写代码,对于现在的模型来说,是一件非常简单的事情。

我配合 /goal 命令,把设计文档和原型一起发给 Claude Code(Fable 5),让它按文档里规划的里程碑一个个去实现。它会自己规划实现顺序,自己写代码,自己运行测试,还会自己截图验证结果。

这里有一个容易被忽略的我经常强调的技巧:让 Agent 自行验证,可以减少你需要介入的次数。 它写完一段代码会自动跑测试,发现失败会自己调试修复;它改完界面会自己截图确认效果。相当于给 Agent 一个自己的反馈循环,让它在你看到结果之前先自己检查一遍。这样你作为人类做最终确认时,拿到的已经是 Agent 自己验证过的结果,而不是一个粗糙的初稿。

这也是为什么合并一些确认环节(比如跳过 Code Review 直接黑盒测试)相对是安全的,Agent 自身能力足够,加上在开发过程中做了自验证,产出质量就会很高。

这个阶段,人需要做的事情非常少,主要就是等,偶尔看一眼进度。

§ 14

If you think about it carefully, you’ll see that code is no longer the bottleneck. Traditional processes such as PRDs, estimation, and security reviews were all meant to align things before the development phase, because development could take weeks or months. But when an agent can finish coding in a few hours, those old confirmation processes need to be rethought in the AI era.

The bottleneck has shifted to the two sides of the code: on the left, design and confirmation; on the right, testing, verification, and deployment. These steps still run at human speed, and they are what now need optimization.

The bottleneck of AI-native development shifts to both sides of code

That’s exactly why I spent so many words earlier on feasibility analysis, design documents, and prototype design—in AI-native development, these “before the code” tasks are actually the most important.

仔细想想你会发现:代码已经不是瓶颈了。传统流程中那些 PRD、估时、安全审查,都是为了在开发阶段之前做好对齐,因为开发可能需要几周甚至几个月。但当 Agent 可以在几个小时内完成编码,以前的这些确认流程在 AI 时代就需要重新审视了。

瓶颈转移到了代码两侧:左边是设计和确认,右边是测试、验证和部署。 这些环节仍然在以人类速度运行,它们才是现在需要优化的地方。

AI 原生开发的瓶颈转移到代码两侧

这也是为什么我在前面的可行性分析、设计文档、原型设计上花了那么多篇幅——在 AI 原生开发中,这些“代码之前”的工作反而是最重要的。

§ 15

Even though the agent writes tests, runs tests, and verifies results for you, that doesn’t mean you can trust it completely. You still need to try it yourself next.

Key mindset shift: treat yourself as an ordinary user, not a developer.

Developer testing and user testing have completely different perspectives. Developers subconsciously avoid edge cases and operate along the path they expect. Ordinary users don’t. They click around randomly, enter things you didn’t expect, and use the feature in ways you never imagined.

So what you should do: open the app, pretend you’re seeing the feature for the first time, and use it intuitively. Are the prompts clear enough? Is the interaction natural enough? Are there reasonable guides when something goes wrong?

When you find a problem, just throw it back to the agent and let it fix it. After a few rounds, the feature is basically usable.

Looking at the final result: the remote transcription feature is fully usable.

Did I review the code? No. I treated myself as QA and did black-box testing only. I trusted Fable 5’s coding ability. This is also a concrete example of the “merged confirmation steps” I mentioned earlier: the agent already ran tests and took screenshots during development, and I did another round of black-box testing from the user perspective. The two layers of verification together are enough.

Of course, this trade-off depends on how important the project is. If it’s the core logic of a financial system, you may still need Code Review. But for most feature development, black-box testing is enough.

虽然 Agent 会帮你写测试、跑测试、验证结果,但这不代表你可以完全信赖它。接下来你需要自己动手试一试。

关键心态转变:把自己当普通用户,而不是开发者。

开发者测试和用户测试的视角是完全不同的。开发者会下意识地避开边界情况,按照自己预期的路径操作。但普通用户不会,他们会乱点、会输入你没想到的内容、会用你没预想到的方式使用功能。

所以你要做的是:打开 App,假装自己第一次看到这个功能,凭直觉去用它。看看提示够不够清楚,交互够不够自然,出错了有没有合理的引导。

发现的问题直接扔给 Agent,让它去修。几轮下来,功能就差不多可用了。

看最终成品:远程转录功能已经完整可用了。

你要问我有没有 Review 代码?没有。我把自己当成 QA,只做了黑盒测试,我信任 Fable 5 的编码能力。这也是前面说的“合并确认环节”的一个具体体现,Agent 在开发过程中已经自己跑过测试、自己截图验证了,我再从用户视角做一轮黑盒测试,两层验证加起来已经足够了。

当然,这个取舍取决于项目的重要程度。如果是金融系统的核心逻辑,你可能还是需要 Code Review。但对于大部分功能开发来说,黑盒测试足够了。

§ 16

Let’s look back at the whole flow:

Feasibility analysis → design document → prototype design → coding → test verification

Isn’t this exactly the traditional software development flow? Yes, it is.

AI-native development didn’t invent a new process; it runs the old process in a new way.

Specifically, there are three fundamental changes:

回过头看整个流程:

可行性分析 → 设计文档 → 原型设计 → 编码实现 → 测试验证

这不就是传统的软件开发流程吗?确实是。

AI 原生开发不是发明了一套新流程,而是用新的方式跑旧的流程。

具体来说,有三个本质变化:

§ 17

Change one: the executor shifts from human to agent.

At every step, the agent is the one doing the real work. You don’t need to write feasibility analysis reports, draw prototypes, write code, or create test cases yourself. You only need to confirm and decide at key nodes.

You focus your energy on judgment and decisions; the agent handles execution and details.

变化一:执行主体从人变成了 Agent

每一个环节,真正干活的都是 Agent。你不需要自己写可行性分析报告,不需要自己画原型图,不需要自己写代码,不需要自己写测试用例。你只需要在关键节点做确认和决策。

你把精力集中在判断和决策上,Agent 处理执行和细节。

§ 18

Change two: confirmation steps can be merged, but not skipped.

In the traditional flow, requirements confirmation, prototype confirmation, and UI confirmation were three separate review meetings. Now you can merge them: requirements documents, prototype design, and UI design are combined into a high-fidelity prototype, confirmed at once. Design documents and prototype design can also be reviewed together.

But the confirmation step itself must never be omitted. Each one exists for a reason:

Feasibility confirmation: decide whether to do it first, so you don’t end up doing a lot of work for nothing.

Technical solution confirmation: is the direction optimal? Is there a better path?

Prototype/UI confirmation: is the interaction friendly? Is the interface beautiful? After development, changes are extremely expensive; at the prototype stage, changes are extremely easy.

Test confirmation: verify whether it’s good from the user’s perspective, not merely whether it runs from the developer’s perspective.

You can speed up confirmations (merge steps, streamline the process), but you cannot skip them. Human judgment is the irreplaceable part of the whole flow.

变化二:确认环节可以合并,但不能省略

传统流程中,需求确认、原型确认、UI 确认是三个独立的评审会。现在你可以把它们合并,需求文档、原型设计、UI 设计一体化成高精度原型,一次性确认。设计文档和原型设计也可以放在一起看。

但确认环节本身绝对不能省。 每一个确认环节都有它存在的理由:

可行性确认:先决定要不要做,避免做了半天发现白忙活

技术方案确认:方向是不是最优,有没有更好的路径

原型/UI 确认:交互是不是友好,界面是不是美观,做出来再改成本极高,原型阶段修改极容易

测试确认:站在用户角度验证好不好用,而不是站在开发者角度验证能不能跑

你可以加速确认(合并环节、简化流程),但不能跳过确认。人的判断力是整个流程中不可替代的部分。

§ 19

Change three: documentation becomes more important.

In traditional development, documentation is an accessory—you write it after the code, or even not at all. But in AI-native development, documentation has become core infrastructure.

It serves two key functions:

It is the vehicle for humans to confirm and revise. You can review design documents, annotate prototypes, and modify technical proposals; all these actions happen at the document layer.

It passes context between agent sessions. Your design document is handed to the development session, your prototype is handed to the implementation session, and each session is no longer isolated.

If you’ve used Claude Code, you’ll feel this deeply. Every time you start a new session, you have to re-explain the previous context. A document is the best context-passing medium—it is more precise than verbal descriptions and more structured than chat history.

Of course, documents also introduce a new problem: if versions are not updated in time, they can produce wrong context.

The three fundamental changes in AI-native development

变化三:文档重要性更高

在传统开发中,文档是附属品,代码写完补文档,甚至不补。但在 AI 原生开发中,文档成了核心基础设施。

它承担两个关键职能:

给人类做确认和修改的载体,你可以审查设计文档、批注原型设计、修改技术方案,这些动作都发生在文档层面

给 Agent 的 Session 之间传递上下文,你的设计文档会被传递给开发 Session,你的原型会被传递给实现 Session,每一个 Session 不再是孤立的

如果你用过 Claude Code,你会对这一点深有体会。每次你开一个新的 Session,你需要把之前的上下文重新给它说一遍。而文档就是最好的上下文传递载体,它比口头描述更精确,比聊天记录更有结构。

当然文档也会带来新的问题,就是如果版本没有及时更新,反而会产生错误的上下文。

AI 原生开发的三个本质变化

§ 20

Finally, a topic many people care about: what Skills did you use? Do you need to install many development Skills to boost the agent’s coding ability?

My answer may be surprising: most development Skills are unnecessary.

Today’s large models are already extremely well trained at coding. Look at my entire interaction with the agent in this flow—the prompts were all very simple natural language: “Help me analyze feasibility,” “Write a design document based on option A,” “Build a prototype based on this design,” “Implement according to the document.” No complex prompt engineering, no special coding skills.

Recall what I said earlier: the bottleneck has shifted to the two sides of the code. The code itself no longer needs enhancement; what needs enhancement are the two sides—design confirmation on the left, and testing, verification, and deployment on the right.

I generally use only two types of Skills, which correspond exactly to those two bottlenecks:

The first type supports design confirmation—solving the left-side bottleneck. For example, Claude Design / baoyu-design, tools that merge prototype design and UI design. They help me quickly produce high-fidelity prototypes, so I can confirm the interface and interaction before coding.

The second type automates labor-intensive work—solving the right-side bottleneck. For example, auto-deployment and auto-publishing. After coding, there are packaging, deployment, and release steps that don’t require judgment but do take time. Commands like /goal also let the agent advance by milestones automatically, reducing the work of manually splitting tasks.

The middle layer—coding itself—the model is already good enough; a simple instruction yields high-quality code. Spending effort on process design pays off far more than spending it on prompt optimization.

最后说一个很多人关心的话题:你用了什么 Skills?需不需要装很多开发类的 Skills 来增强 Agent 的编码能力?

我的答案可能会出乎意料:大部分开发类 Skills 是没必要的。

现在的大模型在编码方面已经训练得极好了。你看我整个流程中和 Agent 的对话,都是非常简单的自然语言提示词:“帮我分析一下可行性”、“按方案 A 写个设计文档”、“按这个设计做原型”、“按文档实现”。没有复杂的 prompt engineering,没有特殊的 coding skills。

回想一下前面说的:瓶颈转移到了代码两侧。代码本身已经不需要增强了,需要增强的是两侧,左边的设计确认,和右边的测试验证与部署。

我一般只用两类 Skills,恰好对应这两个瓶颈:

第一类是辅助设计确认的——解决左侧瓶颈。 比如 Claude Design / baoyu-design 这类将原型设计和 UI 设计合二为一的工具。它帮我快速产出高精度原型,让我可以在代码之前就确认界面和交互。

第二类是自动化减少体力劳动的——解决右侧瓶颈。 比如自动部署、自动发布这类。编码完成后还有打包、部署、发布这些环节,它们不需要判断力,但耗时间。还有 /goal 这样的命令,可以让 Agent 按里程碑自动推进,减少你手动拆分任务的工作。

中间那一层——编码本身,模型已经足够好了,简单的指令就能得到高质量的代码。把精力花在流程设计上,比花在 prompt 优化上回报大得多。

§ 21

Looking back at this feature, from GitHub issue to fully usable, I spent almost no time writing code. The time went to feasibility judgment, repeated prototype polishing, and testing by playing the dumb user. These are exactly the parts agents cannot replace: whether to do it, whether the direction is right, and whether it works well—every one requires a human to decide.

The essence of AI-native development is exactly this: the development process is still the same, but the human role has changed. You go from being the person who writes code to the person who manages agents; the output is no longer code, but a series of judgments and decisions.

I know it’s not easy to let go of the attachment to code. Especially those who have written code for many years, merging without looking at every line can feel unsettling. I also arrived at this “black-box testing only” state step by step. But the trend is clear: models will only become better at coding, and human value will be increasingly concentrated on the two sides of the code. The sooner you complete this role transformation, the more leverage you get from AI.

回头看这个功能,从 GitHub Issue 到完整可用,写代码我几乎没花时间,花时间最多的地方是可行性的判断、原型的反复打磨、测试时把自己当小白用户去折腾。这些恰恰是 Agent 替代不了的部分:做不做、方向对不对、好不好用,每一个都需要人来拍板。

AI 原生开发的精髓也在于此:开发流程还是老样子,但人的角色变了。你从写代码的人,变成了管理 Agent 的人;产出不再是代码,而是一个个判断和决策。

我知道放下对代码的执念不容易,尤其是写了很多年代码的人,不看每一行就合并,心里总有点不踏实。我也是一步步才走到今天这种“只做黑盒测试”的状态。但趋势摆在那里:模型的编码能力只会越来越强,人的价值会越来越集中在代码两侧。越早完成这个角色转换,你从 AI 手里拿到的杠杆就越大。

打开原文 ↗