diff --git a/blog/back-to-vibe-coding-ai-driven-dev-before.html b/blog/back-to-vibe-coding-ai-driven-dev-before.html new file mode 100644 index 0000000..77b4bc9 --- /dev/null +++ b/blog/back-to-vibe-coding-ai-driven-dev-before.html @@ -0,0 +1,435 @@ + + + + + + Back to Vibe Coding:AI驱动开发之前,你需要知道的几件事(上) - Tech Blog + + + + + + + + + + + + + + +
+
+ +
+ +
+ + + +
+
+
+ +
+ +
+
+
+ + arrow_back + 返回博客 + +
+ AI + 2026年6月16日 + + 13 分钟阅读 +
+

+ Back to Vibe Coding:AI驱动开发之前,你需要知道的几件事(上) +

+

+ 从 Prompt 到 Loop,从聊天框到 Agent Harness,重新理解真正高效使用 AI Coding 工具之前需要建立的规则、记忆和工作流。 +

+
+
+ Yui +
+
+

Yui

+

开发者 & 创作者

+
+
+
+
+ +
+
+ 从 Prompt 到 Loop 的文章封面 +
+
+ +
+
+

上周我和朋友聊到了一些 AI 开发相关的问题。

+

一开始只是一个很具体的工具使用问题:Claude Code 的桌面端和 CLI 到底有什么区别?他平时用终端比较多,但又觉得终端复制 Markdown 不方便。比如写邮件、写文档、整理内容时,他希望复制出来就是渲染好的格式,而不是一堆原始 Markdown 文本。

+

但聊着聊着,话题很快就从“桌面端和 CLI 哪个更顺手”,延伸到了 AGENTS.md、上下文记忆、项目规则、Spec 开发这些东西。

+

聊完之后我有一个很强的感受:这些东西并不是学不会,而是很多人根本不知道自己需要学,也不知道应该从哪里开始学。

+

今天又看到有人在讨论 Loop Engineering,也就是所谓的“循环工程”。这个概念一下子把我最近的很多感受串起来了。

+

过去我们总是在讨论 Prompt 怎么写,怎么把一句话写得更准、更完整、更能让 AI 听懂。但真正开始高频使用 Claude Code、Codex、Cursor 这类 AI Coding 工具之后,我越来越觉得,Prompt 只是入口,真正决定效率上限的,是你有没有设计出一套能持续运转的工作流。

+

这个问题表面上是在问工具形态:一个是桌面端,一个是命令行。但越往后聊,我越觉得它背后其实是另一个更大的问题:

+

我们到底应该怎么正确使用 AI Coding 工具?

+

很多人第一次接触 Claude Code、Codex、Cursor 这类工具时,本能上还是把它们当成一个更强的 ChatGPT。打开对话框,输入一句 Prompt,让它写代码;不满意,再补一句;跑不通,再让它 debug。

+

这个流程当然能用,但它本质上还是“人一轮一轮推着 AI 往前走”。

+

Addy Osmani 最近在 Loop Engineering 视频里讲了一个很有意思的判断:未来真正重要的,不是你自己一遍遍去 Prompt Agent,而是设计一个系统,让这个系统去驱动 Agent。换句话说,Prompt 不是没用了,而是它的位置变了。它不再是整个工作流的核心,而只是 Loop 里的一个零件。

+

这也是我最近越来越强烈的感受。AI 驱动开发真正改变的,不是“我少写了几行代码”,而是开发者的工作重心开始往后退一层:从写代码,退到写 Spec;从写 Prompt,退到写 AGENTS.md;从临时沟通,退到设计规则、记忆、验证和循环。

+

所以这篇文章不想写成一篇单纯的工具测评,也不想只讨论“Claude Code 和 Codex 谁更好用”。我更想借着这次和朋友的聊天,重新梳理一件事:

+

在真正进入 AI 驱动开发之前,我们到底需要先知道什么?

+ +

01 你到底在用哪种 AI Coding 工具?

+
+ 工具入口不同,工作流也不同 +
+

先从最小白的问题开始:桌面端和 CLI 到底有什么区别?

+

在我看来,桌面端更像“人看的工作台”。它适合聊天、复制内容、整理 PDF 等文档、生成图片、跨应用操作。比如你让 AI 写一段邮件、整理一份文档、生成一张图片,桌面端的体验通常会更自然,因为它更接近我们平时使用软件的方式。

+

CLI 则是另一种完全不同的入口。它需要在终端里启动,也就是那个黑黑的窗口。你不会像使用普通软件一样到处点按钮,而是主要通过键盘输入命令来操作。对于刚接触的人来说,这个界面一开始会有点陌生,甚至有点“不像软件”。

+

CLI 里通常会有一套 slash command,也就是以 / 开头的斜杠命令。它们不是发给模型的普通 Prompt,而是用来控制工具本身的功能入口。

+

但 CLI 的优势也正是在这里。因为它没有复杂的前端界面和图形渲染,整体会更轻、更直接。尤其是在处理多任务、长时间跑代码、执行测试、读取项目文件时,CLI 往往不会像桌面端那样容易受到界面卡顿的影响。很多命令也支持自动补全,你只需要输入前几个字母,它就能帮你补全后面的内容。熟悉之后,这种方式反而非常快。

+

所以桌面端和 CLI 不是谁替代谁,而是面向不同任务。

+

如果你的任务是写邮件、整理材料、做内容、跨应用操作,桌面端会更舒服。如果你的任务是改代码、跑测试、维护项目上下文,CLI 往往更自然。一个偏向“人如何看和调度”,一个偏向“Agent 如何在工程现场执行”。

+

这个区别在 Codex 和 Claude Code 这一类工具上会越来越明显。早期很多 AI Coding 工具的 CLI 功能更强,因为它们本来就是给极客程序员和重度开发者准备的。但现在桌面端也在快速补齐能力,甚至开始拥有更多面向普通用户的自动化入口,比如浏览器操作、桌面操作、跨应用控制等。

+

这背后其实是厂商在做用户分层。

+

如果你是刚入门的小白,甚至还没有形成“每个项目都应该在固定文件夹里打开”的习惯,那你直接使用 Web 端或者桌面端里的 Chat 模块,反而更合适。你不需要关心当前工作目录在哪里,也不需要理解 git、shell、依赖环境这些东西,系统会帮你把会话和结果保存在默认位置。

+

但如果你已经比较熟悉代码开发,就应该知道,真正写项目时最好在本地创建一个专门的代码目录,然后在 CLI 或 IDE 里打开这个目录。因为 AI Coding 不是让模型凭空生成一段代码,而是让它进入你的项目现场,理解文件结构、执行命令、跑测试、根据反馈继续修改。

+

简单来说,可以先这样理解:

+ + + + + + + + + + + + + + + + + + + + + +
使用场景更适合的入口
日常问答、写作、内容整理ChatGPT / Claude Desktop / Codex 桌面端
图形化管理 AI 编码任务Codex App / Claude Desktop Code 模块 / IDE 插件
重度开发、终端工作流、项目级执行Codex CLI / Claude Code CLI
+ +

02 AI Coding APP 不是聊天框,而是 Agent Harness工程

+
+ 不是聊天框,而是进入项目现场 +
+

很多人用 Claude Code / Codex,还是 ChatGPT 的使用习惯:

+
+

“帮我写一下。”

+

“再改一下。”

+

“再修一下。”

+
+

但真正的 AI Coding 工具不是聊天框,而是一个能读文件、改文件、跑命令、维护上下文的本地 Agent Harness。

+

这里有一个很重要的分界线:

+

如果你只是把它当聊天框,你用到的是模型能力;如果你把它当 Harness,你用到的才是 AI 驱动开发能力。

+

大模型现在对于上下文足够的任务处理得非常出色。但上下文能力只是基础,真正让 AI Coding APP 变得不一样的,是它开始拥有“进入项目现场”的能力。

+

如果你在 ChatGPT 里问:“这个 bug 怎么修?”它大概率会给你一段建议,或者生成一段代码。但在 AI Coding APP 里,它可以直接打开你的项目文件,找到相关代码,修改实现,执行测试,然后告诉你哪些测试通过了,哪些地方还需要继续处理。

+

这件事听起来只是“多了几个工具调用”,但实际体验差别非常大。因为软件开发从来不是单纯写一段代码。它是一整条链路:理解需求、定位文件、修改实现、跑测试、看日志、修复问题、确认结果。过去这些环节都需要人手动串起来,现在 Agent Harness 开始把这些动作接到同一个工作流里。

+

这条分界线很重要,因为它决定了你到底是在“和模型聊天”,还是在“让 Agent 参与开发流程”。

+

这也是为什么我越来越不建议新手一上来就只研究“Prompt 怎么写得更好”。Prompt 当然重要,但它只是入口。真正决定上限的,是你有没有让 AI 进入正确的工作环境,有没有给它足够清晰的上下文,有没有让它知道项目规则,有没有让它执行完之后进行验证。

+

换句话说,AI Coding APP 的重点不是“让 AI 多说一点”,而是“让 AI 真正参与一轮开发闭环”。

+

这时候,开发者的角色也会发生变化。你不再只是一个给模型下指令的人,而更像是在管理一个可以执行任务的 Agent:你要告诉它目标是什么,边界在哪里,哪些文件能动,哪些地方不能碰,做完之后怎么验证,失败了应该怎么记录。

+ +

03 Prompt Engineering还有用,但没那么有用了

+
+ Prompt 是零件,Loop 才是系统 +
+

讲到这里,就可以回到最近很火的那个说法:提示词工程是不是已经死了?

+

我觉得这个说法有传播性,但不够准确。

+

Prompt 没死,只是它不再是最核心的能力。

+

在24年更早一点的时候,大家使用 AI 的方式很简单:打开一个对话框,然后想办法把第一句话写清楚。你要告诉它背景是什么、目标是什么、输出格式是什么、语气是什么、限制条件是什么。那时候大家讨论最多的东西,就是 Prompt 怎么写得更好。

+

这个阶段当然有价值。因为模型如果连你的需求都没听懂,后面所有生成结果都会跑偏。

+

但当模型能力变得越来越强,能够在更长上下文里调用更多工具时,问题开始发生变化。真正耗时间的,往往已经不是第一句 Prompt,而是后面那一整串反复发生的动作:它写完之后你要检查,报错之后你要让它修,修完之后你要跑测试,测试失败之后你要继续补充上下文,最后还要记录这轮到底做了什么。

+

这时候,如果你还把全部精力放在“怎么写一句完美 Prompt”上,就很容易陷入一个误区:你以为自己在自动化开发,其实还是在手动推动每一轮对话。

+

Addy Osmani 在 Loop Engineering 视频里提到的核心变化,正好对应这个问题。未来更重要的,不是人一遍遍去 Prompt Agent,而是设计一个系统,让这个系统去驱动 Agent。也就是说,我们要关注的不只是“这一句话怎么说”,而是“这一整轮工作应该怎么转起来”。

+

Prompt 更像一次性指令。Loop 更像持续运转的系统。

+

Prompt 是你临时告诉 AI:这次你应该怎么做。Loop 是你提前设计好:每一轮应该从哪里启动,读取什么上下文,执行什么动作,用什么方式检查结果,失败了怎么重试,成功了记录到哪里,什么时候继续,什么时候停下来交还给人。

+

这两者的差别非常大。

+

如果你只写 Prompt,你每次都要重新解释一遍背景、规则和目标;但如果你开始设计 Loop,你就会把这些东西沉淀下来,让它们变成可复用的流程。比如项目规则写进 AGENTS.md,上下文沉淀到 docs/ai/context/,开发前先写 Spec,改完之后跑测试,失败结果写回记录里,下一轮再基于这些记录继续推进。

+

所以我更愿意把 Prompt 理解成 Loop 里的一个零件,而不是整个 AI Coding 的核心。

+

真正的变化不是“以后不用写 Prompt 了”,而是 Prompt 从前台退到了后台。以前我们追求的是一句话让 AI 做对,现在我们追求的是一套流程让 AI 持续做对。

+

这也是 AI 驱动开发开始变难的地方。它不是让你彻底不用思考,而是把你的思考从“怎么写一句话”挪到了更高一层:

+
    +
  • 这个任务适不适合交给 Agent?还是在对话窗口简单 chat 就能解决?
  • +
  • 它需要哪些上下文?上下文哪些能否保存复用?
  • +
  • 执行之后怎么验证?
  • +
  • 失败之后怎么恢复?失败怎么兜底?
  • +
  • 哪些结果应该被记住并持久化保存?
  • +
  • 什么情况需要人介入?
  • +
+

这些问题,才是 Prompt 之后真正重要的东西。

+ +

04 如何用长期记忆更高效地使用 Codex、Claude Code?

+
+ 规则文件让上下文变成资产 +
+

讲到这里,就会进入一个很关键的问题:如果 AI Coding APP 不是普通聊天框,那我们到底应该怎么更高效地使用它?

+

我的理解是,第一步不是去写一个更长的 Prompt,而是先把那些长期重复出现的规则沉淀下来。

+

以 Codex 为例,当你安装并使用它之后,在你的全局目录下会有一个隐藏目录,比如 Windows 上通常是 C:\Users\yui\.codex\。这个目录里可以放一个全局的 AGENTS.md 文件。它不是某一次任务的临时提示词,而更像是你长期希望 Codex 遵守的个人工作习惯。

+

比如你希望它默认使用中文,希望它修改代码前先做设计和计划,希望它不要覆盖用户已有改动,希望它把上下文记录到固定目录里,这些都适合写进全局 AGENTS.md。

+

而当你进入一个具体项目时,这个项目本身也可以有自己的项目级 AGENTS.md。它负责描述当前项目的规则:项目怎么启动,测试命令是什么,哪些目录不能动,代码风格是什么,文档和上下文应该保存到哪里。

+

最后,才是你每次对话时输入的 User Prompt。它负责描述这一次具体要做什么,比如“修复这个 bug”“补一组测试”“把这段 OCR 文本整理成公众号文章”。

+

这三层不是简单地互相替代,而是叠在一起工作:

+

User Prompt 负责这一次要做什么,项目级 AGENTS.md 负责这个项目里应该怎么做,全局 AGENTS.md 负责你长期希望 Codex 以什么方式做事。

+

越具体、越靠近当前任务的指令,通常优先级越高。

+

Claude Code 里也有类似的思路,只是文件名和生态习惯不同。很多人会在项目里维护 CLAUDE.md,用来告诉 Claude Code 当前项目的开发规则、命令、边界和偏好。

+

但这里有一个坑:不要一开始就为了写规则而写规则。

+

如果你一上来就预设一个庞大、死板、面面俱到的规则文件,很容易把 AI 约束死。它可能变得不敢动,也可能在一堆抽象规则里抓不到重点,最后反而更容易跑偏。

+

更好的方式是先跑起来。

+

当你在真实使用中发现自己第二次、第三次重复提醒 AI:“测试脚本必须先执行某个前置命令”“前端组件统一使用类似 Apple 的磨砂玻璃 UI 风格”“所有设计文档都要落到 docs/ai/context/ 目录”,这时候就说明这条规则值得被沉淀下来。

+

直白来说:

+

如果你长期反复使用一套流程,就应该把它写进规则文件里,而不是每次都重新在聊天框里解释一遍。

+

比如我的全局配置里,会放一些长期稳定的偏好:

+
# 通用偏好
+
+- 默认使用中文;文档、说明、总结、计划、回复和代码注释都必须使用中文,除非用户明确要求英文
+- 代码注释写原因,不写过程
+- 表达简洁直接,不要多余总结
+
+## 代码风格
+
+- 函数式优先,组合优于继承,TS/JS 中避免 OOP
+- 新功能优先复用或重构现有代码,不堆砌
+- KISS、DRY,采用最简可行方案
+- 发现设计不合理:小问题直接重构,大问题原地加 TODO 并说明原因
+
+## 文档与上下文
+
+- 在进入任何实现前,必须先完成 design / plan 阶段
+- 所有改动、上下文、tradeoff、背景信息,都保存到项目的 `docs/ai/context/` 目录
+- 新增内容时只允许创建新文件,不要覆写、重命名或删除之前的历史文件
+

而项目级配置会更具体。比如某个项目的 AGENTS.md 里,我会放这个项目已有的上下文索引:

+
## 项目上下文索引
+
+- `docs/ai/context/20260607-134929-home-character-html-plan.md`:记录人物图片透明背景处理、新建白底居中 HTML 的设计、取舍和验证方式。
+- `docs/ai/context/20260607-140547-new-homepage-demo-plan.md`:记录将老主页文字和导航转换为图一风格新主页 demo 的设计、取舍和验证方式。
+- `docs/ai/context/20260607-172109-video-frame-loop-plan.md`:记录将 73 帧视频逐帧透明化,并在首页以 5 秒前进/倒序循环播放的设计、取舍和验证方式。
+

这样做的好处是,AI 每次进入项目时,不会像一个完全陌生的新同事。它能先看到项目过去发生过什么、哪些方案已经做过、哪些取舍已经确定、接下来应该沿着什么方向继续。

+

所以很多人以为 AGENTS.md 或 CLAUDE.md 只是 Prompt,但在我看来,它更像 AI Coding APP 的“项目操作手册”。

+

它应该回答的是这些问题:

+
    +
  • 项目怎么启动?
  • +
  • 哪些目录不能动?
  • +
  • 代码风格是什么?
  • +
  • 实现前要不要写 plan?
  • +
  • 修改后要跑哪些测试?
  • +
  • 上下文要保存到哪里?
  • +
  • 什么情况必须问用户?
  • +
  • 什么情况可以直接执行?
  • +
+

这也是我现在越来越确定的一点:

+

真正高级的 Prompt,不应该反复写在聊天框里,而应该沉淀成规则文件。

+

Prompt 解决的是这一次怎么做,规则文件解决的是以后每一次都应该怎么做。

+

当你开始把这些规则沉淀下来,AI Coding 才会从“每次重新沟通”变成“持续积累工作流”。这也是从 Prompt 走向 Loop 的第一步。

+ +

05 Skill:把规则进一步拆成可复用能力

+
+ Skill 是可复用动作,Automation 让它启动 +
+

如果说 AGENTS.md / CLAUDE.md 更像项目规则,那么 Skill 更像一套可复用的工作流模块。

+

项目规则解决的是“这个项目里应该怎么做”。Skill 解决的是“遇到某一类任务时,应该按什么流程做”。

+

比如写文章可以有一个 Skill,做代码 Review 可以有一个 Skill,做 Spec 开发可以有一个 Skill,做 OCR 整理可以有一个 Skill,做 PR 巡检也可以有一个 Skill。

+

这两者不是互相替代的关系,而是可以嵌套使用。

+

举个例子,我可以在全局 AGENTS.md 里要求 Codex 每次新对话开始时,先读取并使用 using-superpowers 这个 Skill。这样我就不需要每次开发前都手动提醒它:“你先别急着写代码,先做设计和计划。”规则文件会自动告诉它:进入实现之前,必须先完成 design / plan 阶段。

+

这就是规则文件和 Skill 配合起来之后的效果。

+

这里还有一个很重要的点:

+

Skill 应该服务你的工作流,而不是反过来让你迁就 Skill。

+

比如 using-superpowers 这类 Skill,默认可能会把生成的设计文档、计划文档放到它自己的目录里。但我的项目习惯是把所有 AI 上下文都保存到 docs/ai/context/。所以我会在项目级 AGENTS.md 里明确要求:所有设计、取舍、背景信息和结果文档,都必须落到我指定的 docs/ai/context/ 目录下。

+

原因很简单:这是我的项目上下文系统。

+

我不希望上下文散落在各个工具自己的目录里,也不希望以后回看一个项目时,还要到处翻 Skill 的内部文件夹。真正有价值的上下文,应该回到项目本身,成为项目资产的一部分。

+

这也是我为什么会把 Skill 的输出重新约束回项目目录。

+

更进一步,Skill 不只可以用于单次任务,还可以和自动化任务结合起来,变成一个长期运行的小助手。

+

我最近就做过一个这样的工作流:每隔 12 小时,Codex 会自动检查我 GitHub 账号 cnYui 下所有 open PR 的最新反馈。如果有新的 review comment、maintainer comment、CI 失败或者 requested changes,它会按风险分级处理。

+

这个任务大概会做几件事:

+
    +
  • 拉取我当前所有 open PR。
  • +
  • 检查 review comments、issue comments、CI/check runs、merge 状态。
  • +
  • 只处理我上次回复之后的新反馈,避免重复评论。
  • +
  • 如果是事实性问题、CI 权限、CLA、外部服务阻塞这类不需要改代码的问题,就直接用简短、基于证据的方式回复。
  • +
  • 如果反馈要求改代码、补测试、修真实失败的 CI,就自动检出对应 PR 分支,在独立目录里修改、测试、提交、推送,再回到 PR 里说明改了什么、跑了什么验证。
  • +
  • 如果遇到需要用户账号操作、签署协议、付费授权、维护者权限或者产品方向决策的问题,就不上手乱改,只上报 blocker。
  • +
+

这样一来,它就不是一个“帮我看一下 PR”的临时 Prompt,而是一个每 12 小时自动运行的 PR 巡检 Loop。

+

更有意思的是,这个 Loop 还可以继续扩展。比如你可以把它接到 Gmail 上:一旦 Gmail 里出现 GitHub 发来的 PR 反馈邮件,就触发对应任务,读取邮件内容,再进入 PR 检查、修改、提交和回复的流程。

+

这时候你会发现,所谓 AI Harness 开发,不只是 Agent 自己调用工具的那个小循环,而是一个“用户 + AI + 工具 + 规则 + 记忆”的大循环。

+

在这个大循环里:

+
    +
  • 用户通过全局规则、项目文档、Skill 和自动化任务,组合出一套自己的工作流。
  • +
  • 每个工作流内部,又可以嵌套很多个 Agent Loop,让 Agent 去读文件、改代码、跑测试、查 PR、写回复。
  • +
  • Agent 能调用哪些工具、怎么调用、什么时候停下来,都需要用户提前在规则和文档里定义清楚。
  • +
+

所以真正难的不是“让 AI 执行一个任务”。

+

真正难的是你要站在更高一层,设计这个系统怎么转起来。

+

这也是我为什么说,Prompt 只是最外层的入口。

+
+

Prompt 是一句话。

+

AGENTS.md / CLAUDE.md 是一份规则。

+

Skill 是一套可复用动作。

+

Automation 是让这套动作定时或按事件启动。

+

Loop 则是把这些东西串起来,让它持续运转。

+
+

当你熟悉掌握了这点之后,AI Coding 就不再只是“小白会用工具”的阶段,而是进入“进阶用户设计系统”的阶段。

+

你不再只是问 AI:“帮我做一下这个。”

+

你开始设计的是:以后每次遇到这种事情,AI 应该如何自动发现、自动处理、自动验证、自动记录,以及在什么情况下必须停下来交还给人。

+
+ +
+ 标签: + AI Coding + Vibe Coding + Codex + Claude Code + Loop Engineering +
+ +
+ 分享文章: +
+ +
+
+
+
+ + + + + + diff --git a/images/blog/back-to-vibe-coding/00-cover-prompt-to-loop.png b/images/blog/back-to-vibe-coding/00-cover-prompt-to-loop.png new file mode 100644 index 0000000..48fa6b7 Binary files /dev/null and b/images/blog/back-to-vibe-coding/00-cover-prompt-to-loop.png differ diff --git a/images/blog/back-to-vibe-coding/01-tool-entry-desktop-cli.png b/images/blog/back-to-vibe-coding/01-tool-entry-desktop-cli.png new file mode 100644 index 0000000..10759ac Binary files /dev/null and b/images/blog/back-to-vibe-coding/01-tool-entry-desktop-cli.png differ diff --git a/images/blog/back-to-vibe-coding/02-agent-harness-project-site.png b/images/blog/back-to-vibe-coding/02-agent-harness-project-site.png new file mode 100644 index 0000000..920c6d1 Binary files /dev/null and b/images/blog/back-to-vibe-coding/02-agent-harness-project-site.png differ diff --git a/images/blog/back-to-vibe-coding/03-prompt-to-loop-system.png b/images/blog/back-to-vibe-coding/03-prompt-to-loop-system.png new file mode 100644 index 0000000..3d437b7 Binary files /dev/null and b/images/blog/back-to-vibe-coding/03-prompt-to-loop-system.png differ diff --git a/images/blog/back-to-vibe-coding/04-rules-as-manual.png b/images/blog/back-to-vibe-coding/04-rules-as-manual.png new file mode 100644 index 0000000..2abbdf8 Binary files /dev/null and b/images/blog/back-to-vibe-coding/04-rules-as-manual.png differ diff --git a/images/blog/back-to-vibe-coding/05-skill-automation-machine.png b/images/blog/back-to-vibe-coding/05-skill-automation-machine.png new file mode 100644 index 0000000..ad8ca8e Binary files /dev/null and b/images/blog/back-to-vibe-coding/05-skill-automation-machine.png differ diff --git a/js/blog-data.js b/js/blog-data.js index 8bd8927..b2b3701 100644 --- a/js/blog-data.js +++ b/js/blog-data.js @@ -1,5 +1,38 @@ (function () { window.YuiBlogData = [ + { + id: 12, + publishedAt: '2026-06-16', + image: '/images/blog/back-to-vibe-coding/00-cover-prompt-to-loop.png', + category: 'AI', + author: 'Yui', + link: '/blog/back-to-vibe-coding-ai-driven-dev-before', + title: { + zh: 'Back to Vibe Coding:AI驱动开发之前,你需要知道的几件事(上)', + en: 'Back to Vibe Coding: What to Know Before AI-Driven Development (Part 1)', + ja: 'Back to Vibe Coding:AI駆動開発の前に知っておきたいこと(上)' + }, + date: { + zh: '2026年6月16日', + en: 'Jun 16, 2026', + ja: '2026年6月16日' + }, + shortDate: { + zh: '6月16日', + en: 'Jun 16', + ja: '6月16日' + }, + readTime: { + zh: '13 分钟阅读', + en: '13 min read', + ja: '13分で読める' + }, + excerpt: { + zh: '从 Prompt 到 Loop,从聊天框到 Agent Harness,重新理解真正高效使用 AI Coding 工具之前需要建立的规则、记忆和工作流。', + en: 'From Prompt to Loop, from chat box to Agent Harness, a practical note on rules, memory, and workflows before AI-driven development.', + ja: 'Prompt から Loop へ、チャット欄から Agent Harness へ。AI駆動開発の前に整えるべきルール、記憶、ワークフローを整理します。' + } + }, { id: 11, publishedAt: '2026-06-06', diff --git a/js/lang.js b/js/lang.js index a7a8819..c409d24 100644 --- a/js/lang.js +++ b/js/lang.js @@ -909,7 +909,9 @@ '/blog/vibe-coding', '/blog/vibe-coding.html', '/blog/ai-native-hackathon', - '/blog/ai-native-hackathon.html' + '/blog/ai-native-hackathon.html', + '/blog/back-to-vibe-coding-ai-driven-dev-before', + '/blog/back-to-vibe-coding-ai-driven-dev-before.html' ].includes(path); }