我的 Vibe Coding 实践手记:技术栈、工程规范、AGENTS.md、MCP/Skills

6045 字
30 分钟
我的 Vibe Coding 实践手记:技术栈、工程规范、AGENTS.md、MCP/Skills

我的 Vibe Coding 实践手记:技术栈、工程规范、AGENTS.md、MCP/Skills#

🛠️ 选型对比矩阵

📜 通用最小 AGENTS.md

🛡️ SDD & 真实 E2E 闭环

🧰 Context7 & Playwright 外脑

✨ 核心要点速览

过去 9 个月,我几乎所有项目都在深度依赖 AI 辅助编程(Vibe Coding)。本文不讲虚头巴脑的宏大叙事,全是从无数次“AI 盲写代码翻车”中淬炼出来的实操干货:

  • 技术栈的“确定性”选型:按领域拆解前端(React vs Vue)与后端(TypeScript vs Python vs Java)的选型矩阵,讲透什么样的栈能让 AI 发挥最大威力且不踩坑。
  • 核心开发规范:基于 Ponytail 极简阶梯、零信任边界划分与第一性原理,彻底解决 AI 过度封装与假想防御的通病。
  • 通用最小 AGENTS.md:一份无需绑定具体框架与业务私货、可直接复制到任何仓库根目录立即生效的工程宪法。
  • SDD 与 TDD 交付闭环:通过规格分层、Matt Pocock 的需求质询思想、工单化切片(一次会话只干一件事),配合抛弃虚假 Mock 的真实端到端(E2E)与不变式测试。
  • 精简外脑兵器库:只保留最核心的黄金搭档——Context7(编码前拉取最新官方文档消除幻觉)+ Playwright(编码后操纵真实浏览器闭环排错),辅以 Impeccable 拦截前端“AI 塑料感”。

🎯 引言:9 个月前的误区与认知演进#

刚接触 Vibe Coding 的前两个月,我经历过极其强烈的震撼期与蜜月期:一个完整的项目骨架、几组增删改查页面,十来分钟就能噼里啪啦敲出来。那时候我一度以为“程序员敲代码的时代彻底结束了”。

但紧接着,残酷的现实开始接踵而至:

  1. 隐性债务滚雪球:随着功能变多,AI 经常开始“自作聪明”,在项目里塞入一层又一层的工具类、适配层和设计模式,原本 30 行就能写完的逻辑硬生生被拆成了 5 个文件;
  2. 打地鼠式 Debug:遇到一个 Bug,AI 喜欢在报错的地方加 try...catch 或者判空兜底,表面上不报错了,但底层数据早已错乱,把一个显性 Bug 变成了十几个隐蔽 Bug;
  3. 知识盲区与幻觉:面对最近半年版本迭代的新开源库(例如 Tailwind v4、React 19、Pydantic v2、Drizzle ORM),AI 频繁使用已经废弃或根本不存在的 API,在控制台报错里原地打转。

踩过无数次坑后,我彻底推翻了“向 AI 随性下需求、让它全权自由发挥”的幻想。

✅ 工业级 Vibe Coding(受控确定性闭环)

SDD 规格明确 + Grill-me 质询

AGENTS.md 约束 + Ponytail 极简

Context7 实时文档真源输入

小步工单切片 + 真实 E2E / Invariants 验收

稳定可控、短 Diff 高质量交付

❌ 盲目随性的 Vibe Coding(技术负债黑洞)

模糊需求 / 随性聊天

AI 自由盲写与过度抽象

隐蔽 Bug 爆发

AI 机械打补丁 / 吞错兜底

代码腐化 / 无法重构维护

✅ 工业级 Vibe Coding(受控确定性闭环)

SDD 规格明确 + Grill-me 质询

AGENTS.md 约束 + Ponytail 极简

Context7 实时文档真源输入

小步工单切片 + 真实 E2E / Invariants 验收

稳定可控、短 Diff 高质量交付

❌ 盲目随性的 Vibe Coding(技术负债黑洞)

模糊需求 / 随性聊天

AI 自由盲写与过度抽象

隐蔽 Bug 爆发

AI 机械打补丁 / 吞错兜底

代码腐化 / 无法重构维护

真正的工业级 Vibe Coding,核心在于“控制权的分工”:

  • 人类只做高维度决策:把控架构分层、澄清领域概念、设定设计规范、划分信任边界、严格把关最终验收。
  • AI 做高并发机械实现:遵循规范与类型约束,在严密防线内充当不知疲倦的代码推土机。

一、 技术栈选型:让 AI 编码具有“确定性”#

在 AI 辅助开发的场景下,技术栈的选型标准发生了一些微妙但决定性的变化。一个好的“Vibe 友好型技术栈”必须具备三大特征:

  1. 类型完备:强类型能在编译期无情卡死 AI 的低级语法与拼写错误;
  2. 原生与显式:API 尽量贴合 Web 标准或语言原生能力,减少充满黑盒与动态魔法的元编程;
  3. 极速门禁反馈:格式化、类型检查必须在毫秒到秒级搞定,不能让 AI 或人类在等待静态检查中损失注意力。

1. 前端技术栈对比(React vs Vue)#

领域 / 层级React 生态 (TypeScript)Vue 生态 (TypeScript)实践心得与 AI 协作感受
核心视图与运行时React 19(Actions、use、流式 Suspense)Vue 3.5+(SFC、Composition API)两者 AI 的支持度都极高。React 社区在 AI 交互组件(如流式打字卡片、可中断渲染)上的现成模式更丰富;Vue 的单文件组件结构天然清晰,AI 写组件时逻辑很少乱窜。
组件基元与设计系统Base UI (@base-ui/react) / Radix UI + TailwindRadix Vue / Reka UI + Tailwind强烈建议采用无样式基元(Headless UI)。让成熟的基元库处理键盘导航、焦点管理和无障碍访问(a11y),AI 只需要专注拼接业务样式,能杜绝 AI 手写复杂交互组件时漏掉的边缘细节。
路由与数据加载TanStack RouterVue Router 4 + unplugin-vue-router强烈推荐强类型路由。页面传参、路径变更直接在 TypeScript 编译期报错,AI 重构页面或跳转时几乎不会出现 404 或参数拼错的问题。
状态与流式交互TanStack Query + Vercel AI SDK (@ai-sdk/react)TanStack Query Vue + VueUseAI 聊天交互、流式输出与业务全局状态切忌混成一团,建议用专门的 Hooks / Composables 独立封装。
样式解决方案Tailwind CSS v4(CSS-first、零配置启动)Tailwind CSS v4 / UnoCSS原子化 CSS 是 AI 最擅长的领域,不需要在独立的 CSS 文件和组件文件之间来回跳跃,极大节省上下文窗口。
构建与极速门禁Vite / Rolldown + oxlint + oxfmtVite + oxlint + oxfmt选用 Rust 工具链替代传统 ESLint / Prettier,千行代码毫秒级完成校验,杜绝 AI 和人类等待 linter 时的卡顿与中断。
端到端与测试Playwright + VitestPlaywright + Vitest业务层直接上 Playwright 跑真实浏览器验证,纯逻辑与解析算法用 Vitest 跑不变式测试。

2. 后端技术栈对比(TypeScript vs Python vs Java)#

领域 / 层级TypeScript (Node/Bun)Python (3.12+)Java (21+ LTS)实践心得与 AI 协作感受
核心 Web 框架Hono / FastifyFastAPISpring Boot 3.x / QuarkusHono 和 FastAPI 的轻量化与标准 Web / ASGI 契约极其适合 AI 快速起手;Java 稳定严谨但样板代码多,需预设好标准脚手架。
契约校验与类型系统Zod / TypeBox + @hono/zod-openapiPydantic v2 + Pydantic SettingsJakarta Validation + Record + Lombok契约先行是第一铁律。无论选用哪个语言,外部输入、LLM 结构化输出都必须强制经过严格 Schema 解析,杜绝未经验证的数据流入业务层。
持久化与 ORMDrizzle ORMSQLAlchemy 2.0 (async) + AlembicSpring Data JPA / MyBatis-Flex优先选轻薄、SQL 表达直观的 ORM。避免让 AI 处理过于复杂的隐式关联加载与黑盒生命周期。
异步队列与调度BullMQ (Redis)Taskiq + RabbitMQ Quorum / CelerySpring Task / Redisson / RabbitMQ并发交互必须有显式背压、超时取消与重试上限,优先使用仲裁队列(Quorum)保障消息不丢。
代码门禁与静态分析tsc --noEmit + oxlintuv + ruff + mypy + import-linterCheckstyle + SpotBugs + ArchUnitPython 端一定要上 uv(极速包管理)与 ruff;配合单向依赖检查工具(如 import-linter),严格杜绝循环依赖与模块越界。
AI 编排与工作流Mastra / LangChain.js / AI SDKLangGraph / LangChainSpring AI / LangChain4j优先使用状态图(Graph)与带中断(Interrupt)机制的编排框架,以便在关键写操作前支持人机确认(HITL)。

二、 核心开发规范:约束越多,AI 越稳#

没有约束的 AI,写出来的代码往往充满两极分化:要么为了秀技引入一大堆未来根本用不上的抽象层,要么在各种内部调用处写满令人窒息的防御性判空。

在过去的实践中,我固化了以下四条工程准则:

1. Ponytail 极简阶梯(Lazy Senior Dev Mode)#

这是我在所有编码任务中强制贯彻的“极简阶梯”。每次要求 AI 编写或修改代码时,必须严格依序攀登:

1. YAGNI:这功能必须做吗?能不做就不做
2. 仓库既有复用:现有代码库有没有可用工具/模式?
3. 语言标准库:语言内置 API 是否原生支持?
4. 平台原生机制:操作系统/运行时环境是否原生自带?
5. 已装依赖能力:已有三方库有没有内建解法?严禁随意添依赖
6. 单行精炼表达:能不能平实清晰地一行解决?
7. 最终编码:编写最短、最清晰的有效实现
1. YAGNI:这功能必须做吗?能不做就不做
2. 仓库既有复用:现有代码库有没有可用工具/模式?
3. 语言标准库:语言内置 API 是否原生支持?
4. 平台原生机制:操作系统/运行时环境是否原生自带?
5. 已装依赖能力:已有三方库有没有内建解法?严禁随意添依赖
6. 单行精炼表达:能不能平实清晰地一行解决?
7. 最终编码:编写最短、最清晰的有效实现

核心信条:最优秀的代码是无需编写的代码。追求最短有效 Diff,删除优于兼容,平实优于取巧。坚决抵制任何未经明确要求的预先设计与抽象模板。

2. 明确信任边界,拒绝过度防御工程#

在 AI 写的代码里,经常能看到一种坏味道:函数入参是个内部类型,但内部还要写四五个 if (!param) return null,层层套娃,掩盖了真正的问题。

必须把系统边界与受信任内部严格切分开:

🏰 受信任内部领域 (通透精炼链路)

领域服务与用例

内部模块协同

无冗余嵌套判空 · 报错直接抛出

🛡️ 严格契约校验层

Zod / Pydantic Schema 解析

SSRF / 私网 IP 强制拦截

Prompt 注入 XML 围栏隔离

🚨 外部不可信边界 (零信任防线)

HTTP 请求参数

爬虫抓取内容

LLM JSON 输出

外部文件 / XML

🏰 受信任内部领域 (通透精炼链路)

领域服务与用例

内部模块协同

无冗余嵌套判空 · 报错直接抛出

🛡️ 严格契约校验层

Zod / Pydantic Schema 解析

SSRF / 私网 IP 强制拦截

Prompt 注入 XML 围栏隔离

🚨 外部不可信边界 (零信任防线)

HTTP 请求参数

爬虫抓取内容

LLM JSON 输出

外部文件 / XML

  • 外部边界严防死守:
    • 所有外部输入(HTTP、爬虫、LLM 输出)必须经过强类型 Schema 解析;
    • 网络抓取前必须执行 SSRF 防御,坚决拦截私有局域网与回环地址;
    • 防范 Prompt 注入:所有检索召回的客观外部文本,必须使用明确的 XML 围栏(例如 <context_document>)进行物理隔离,并在 System Prompt 中声明该标签内全为不可信数据。
  • 内部链路精炼直白:在内部模块协同中,坚决剔除假想式防御、冗余类型断言与掩盖错误的吞错兜底。

3. 注释与日志的第一性原理#

  • 只描述现状,解释 WHY 不解释 WHAT:
    // ❌ 错误示范:复述代码做了什么,或者记录历史原因
    // 遍历用户列表并过滤掉未激活用户,曾有 Bug,原本打算用 map 实现
    const activeUsers = users.filter(u => u.isActive);
    // ✅ 正确示范:说清楚为什么需要这么做、关键边界是什么
    // 过滤未激活账号以避免下发批量推送时触发下游第三方通道配额熔断
    const activeUsers = users.filter(u => u.isActive);
  • 绝不留存“历史包袱”:严禁在注释中叙述“历史原因”、“兼容迁移前旧数据”;如果删去注释后读者依然能轻易读懂且不丢失关键边界信息,该注释即为多余,必须删除。
  • 错误调用栈保全:捕获未知错误重新抛出时,必须传递 { cause: err };日志统一使用结构化传参,英文字段名 + 中文业务提示,敏感字段强制脱敏。

4. 架构卫生准则#

  • 单业务文件不超过 500 行:业务代码一旦逼近 500 行,意味着该模块的职责已经开始发散,必须优先重构模块边界。
  • 删除优于兼容:重构时直接硬删除废弃逻辑,严禁在内部留存无用的 deprecated 兼容层或长期双写。若数据库迁移确实需要临时双写,必须在代码处注明移除条件与工单号(例如 ponytail: migration until M2, issue #12)。

三、 给 AI 一部“宪法”:通用最小 AGENTS.md 模板#

在不同的 AI 工具(Claude Code、Cursor、Windsurf、Agy CLI 等)中,提示词(Prompts)很容易在长对话中被冲淡遗忘。

最稳固的做法,是在项目根目录放置一份名为 AGENTS.md 的文件。这是 AI 每次工作启动时必须强制阅读的“系统宪法”。

下面是我提炼的一份开箱即用、无业务私货的通用最小 AGENTS.md,你可以直接复制到任何项目根目录:

# AGENTS.md — 核心工程规范与开发准则
## 1. 核心工程原则
1. **架构与领域优先**:计划阶段必须以理想架构为目标,明确领域边界、模块职责、依赖方向和数据流。设计必须完整,实现必须克制:不做推测性抽象,抽象延迟到第二个真实用例出现时才引入,单一场景直接实现。
2. **模块高内聚与行数限制**:业务代码按单一职责拆分,单个代码文件不得超过 500 行(工具自动生成的类型或迁移文件除外);接近上限时优先重构拆分职责边界。
3. **边界清晰与单向数据流**:协议模型、领域模型、持久化模型和视图模型不得跨层混用;所有数据必须在边界处完成校验与独立转换,避免跨层共享可变状态。
4. **零信任输入与安全隔离**:任何外部输入(HTTP 参数、爬虫采集、LLM 输出、外部文件)均视为不可信,必须通过严密 Schema 校验;敏感凭据严禁硬编码或输出到日志中。
5. **并发与故障防御**:后端交互必须主动考虑幂等性、超时控制、任务取消与资源释放;严禁通过无边界重试、吞错或静默兜底掩盖真实问题。
6. **复用优先与依赖克制**:优先使用语言标准库与已有依赖的内置能力;引入新依赖必须经过充分调研,严禁自行重复造基础轮子。
7. **删除优于兼容**:内部重构时坚决硬删除废弃代码,严禁保留长期 deprecated 兼容层或无意义的双写逻辑。临时迁移必须显式标注移除条件与工单号。
8. **保留关键设计意图**:代码注释说 WHY 不说 WHAT,纯粹描述系统现状,单行精炼;严禁在注释中叙述“历史原因”或过时决策。非显然的关键架构决策归档到 `docs/adr/`,禁止裸写 `TODO`(统一格式:`TODO(#ticket):`)。
9. **端到端测试与不变式测试是唯一测试机制**:杜绝编写充斥大量 Mock 的浅层单元测试。业务逻辑优先使用真实环境的端到端测试(E2E);纯算法与解析模块必须先在测试清单中穷举所有失败可能(Invariants),再编写实现代码。
10. **第一性原理与原生优先(Ponytail 原则)**:编码前必须研读最新官方文档与推荐范式;严格依序遵循:YAGNI 检验 → 既有复用 → 语言标准库 → 平台原生特性 → 已装依赖 → 单行表达 → 最少代码,追求最短有效 diff。
## 2. 提交流水线(本地硬门禁)
提交或推送代码前,必须确保本地以下四项全部通过(若对应工具存在):
1. **代码格式检查**:格式化无差异(如 `fmt --check`)
2. **严格类型检查**:类型编译 0 报错(如 `typecheck`)
3. **代码规范检查**:Lint 检查 0 error 0 warning(如 `lint`)
4. **自动化测试**:端到端与关键算法测试 100% 通过(如 `test`)

四、 SDD 与 TDD 实践:把“撞大运”变成“确定性交付”#

很多人在 Vibe Coding 时感觉“心慌”,本质上是因为没有建立规格(Spec),无法定义什么时候算做完了、什么时候算做对了。

在这 9 个月的迭代中,我彻底转向了 规格驱动(SDD) 与 真实测试驱动(TDD) 的双重约束体系。

1. SDD 实践:规格分层与工单化切片#

在写任何业务代码之前,我要求系统必须拥有以下几份“真源文件”:

  • PRODUCT.md(产品真源): 明确产品受众、核心目的与交互调性。最关键的是写上 Anti-references(反向参考风格),例如明确写明:“杜绝花哨的 SaaS 渐变、杜绝终端风格暗色刺眼配色、杜绝 AI 常见的圆润气泡对话框与慢吞吞的打字机动画”。告诉 AI 什么是丑的,比告诉它什么是美的有用得多。
  • DESIGN.md(视觉真源): 收敛整个项目的 Design Tokens,包括确定的色板(推荐现代 oklch 或规范 Hex)、字阶表、紧凑度(Density)与间距缩放。
  • CONTEXT.md(领域统一语言表): 明确业务领域中的专有名词,并列出显式的 _Avoid_ 禁用词汇。比如在文档中写清:本项目一律称呼为「基元组件」,严禁 AI 混淆使用「UI 框架」「底层库」「新基元」等自造词。这能彻底锁死 AI 在长对话中的术语漂移。

工单化小步快跑(Ticket-driven)#

当架构设计完成后,将大方案切碎为独立的 Markdown 工单文件(比如 01-auth-endpoints.md、02-chunker-pipeline.md):

---
id: '01'
title: 实现基于 Argon2 的安全认证与令牌颁发
type: task # 可选: research / prototype / task
status: open # open / claimed / closed
blocked_by: [] # 依赖的前置工单
---
## 目标与出口判据
- 端点 POST /api/auth/login 校验凭据并签发 HttpOnly Cookie
- 密码校验采用 Argon2-cffi 算法
- 验收标准:tests/e2e/test_auth.py 真实请求全通

绝对铁律:一次会话只解一张工单。 认领工单 → 让 AI 专注实现 → 跑通测试 → 在工单追加 ## Answer 总结变更 → 将工单标为 closed → 完成一次干净的 Git 提交。 绝不让 AI 在一次超长会话中同时做几件混杂的事情,这能最大程度防止上下文污染。

2. TDD 实践:告别虚假的浅层测试#

在 AI 编码中,最容易被误用的就是单元测试。AI 为了让测试跑通,会非常熟练地 Mock 掉数据库、Mock 掉网络请求、Mock 掉所有依赖函数,最后生成了一套 100% 通过的“纸面测试”——一旦联调,依然到处报错。

我将测试简化为两类最真实、最能打硬仗的形式:

🧪 告别虚假 Mock:双轨真实测试机制

2. 不变量测试 (Invariants) · 纯算法与解析

无副作用纯函数 (分词/切片/图算法)

先在测试清单中穷举所有失败可能

红绿重构 (先写失败用例,后写实现)

1. 真实端到端测试 (E2E) · 业务唯一标准

Playwright 驱动真实浏览器

Docker Compose 启动真实中间件栈

真查库 · 真连 Redis · 验证真实网络链路

🧪 告别虚假 Mock:双轨真实测试机制

2. 不变量测试 (Invariants) · 纯算法与解析

无副作用纯函数 (分词/切片/图算法)

先在测试清单中穷举所有失败可能

红绿重构 (先写失败用例,后写实现)

1. 真实端到端测试 (E2E) · 业务唯一标准

Playwright 驱动真实浏览器

Docker Compose 启动真实中间件栈

真查库 · 真连 Redis · 验证真实网络链路

  1. 真实端到端测试(E2E)作为业务逻辑的唯一测试机制:
    • 前端使用 Playwright 启动真实的无头或带头浏览器,断言真实的 DOM 渲染与用户交互;
    • 后端通过 Docker Compose 启动真实的数据库、缓存、消息队列等依赖环境跑集成测试;
    • 真查库、真发网络请求,拒绝浅层 Mock。
  2. 不变量测试(Invariants Testing):
    • 针对纯算法、文本切片、分词、协议解析等无副作用模块;
    • 在写实现代码之前,先在 tests/invariants/ 清单中穷举所有边界与失败情形(空输入、非法编码、超长边界、特殊换行符);
    • 先跑红,再写实现,全绿即收工。

五、 常用外脑工具:MCP 与 Skills 黄金搭档#

再聪明的 AI 也会受限于上下文窗口与知识滞后。配置一套精简高效的外部能力至关重要。

1. 核心 MCP:精简到极致的黄金组合#

配置一长串不稳定的 MCP 只会拖慢推理速度。在日常开发中,我固定只用这组不可或缺的双核心:

编码后 · 客观验证

编码前 · 输入真源

1. 检索最新官方文档与版本化 API

回填精准文档与规范用法,杜绝幻觉

2. 编写代码后,操作真实浏览器执行验证

捕获真实页面报错、DOM 状态与控制台日志

AI Coding Agent

📖 Context7 MCP
(Upstash)

🎭 Playwright MCP
(Browser)

编码后 · 客观验证

编码前 · 输入真源

1. 检索最新官方文档与版本化 API

回填精准文档与规范用法,杜绝幻觉

2. 编写代码后,操作真实浏览器执行验证

捕获真实页面报错、DOM 状态与控制台日志

AI Coding Agent

📖 Context7 MCP
(Upstash)

🎭 Playwright MCP
(Browser)

  • Context7 (Upstash) — 解决编码前的“知识滞后”:
    • 痛点:AI 模型的原生权重往往落后于现实开源库的最新版本(比如 Tailwind v4 配置方式变更、Drizzle ORM 的新 API、React 19 新语法);
    • 解法:Context7 允许 AI 在写代码前直接按需检索并拉取最新、带版本号的官方文档和权威示例,彻底消除废弃 API 的幻觉。
  • Playwright — 解决编码后的“纸上谈兵”:
    • 痛点:AI 生成的前端代码经常“在脑海中编译通过”,实际在浏览器里却布局塌陷、按钮被遮挡或有异步竞态;
    • 解法:让 AI 拥有自主操纵真实无头浏览器的能力。AI 写完页面后自己导航上去点击、看报错日志、截取屏幕排查,真正实现**“生成 → 实际运行 → 发现破损 → 自主修复”**的闭环。

2. 关键 Skills 体系#

除了工具层面,我还把成熟的工程规范沉淀为 Agent Skills:

  • Matt Pocock Skills 系列(逻辑与工程护栏):
    • /grill-me:开工前的需求拷问神器。让 AI 扮演挑剔严苛的资深架构师,逐个问题盘问我:“如果用户网络断开怎么办?”“主键冲突怎么处理?”“并发配额如何切分?”把隐藏假设在写代码前全部问清楚。
    • /sdd:自动化辅助规格定义与工单拆分。
    • /tdd:驱动严格的 Red-Green-Refactor 流程。
  • Impeccable(前端审美与防“AI 塑料感”):
    • Paul Bakaus 发起的开源设计技能,注入了 50 多条确定性的反模式检查规则;
    • 结合前文提到的 PRODUCT.md 和 DESIGN.md,使用 /critique 或 /polish,能够一键扫除 AI 经常写出的粗暴卡片套卡片、无节制渐变色和留白失衡,让界面呈现干净克制的编辑质感。
  • Ponytail(极简与复杂度审查):
    • 专治 AI 的过度设计与推测性封装本能;
    • 在 Review 阶段使用 /ponytail-review,只寻找可以删除的代码、多余的抽象层和重复轮子,坚决守卫代码库的极简底线。

六、 结语#

回顾这 9 个月的实践,我最大的体会是:

Vibe Coding 并不等于“把一切交给运气”。

如果你把 AI 当成一个神仙,指望它理解你随口说出的模糊想法并自动做出高质量的大型工程,结果必然是一场灾难;但如果你把 AI 当成一个手速极快但缺乏自控力的初中级工程师,用严格的**规格(SDD)指导它,用工程宪法(AGENTS.md)管束它,用真实测试(E2E / Invariants)检验它,再用外脑(Context7 / Playwright)**补全它的视野——

你就会发现,软件开发的重心已经彻底迁移了: 你不再需要为了千行样板代码敲断手指,你可以把全部心力放在真正的系统架构设计、核心领域推演、契约边界定义与产品体验打磨上。

这才是工业级 Vibe Coding 带来的真正自由。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

我的 Vibe Coding 实践手记:技术栈、工程规范、AGENTS.md、MCP/Skills
https://rushzb-blog.pages.dev/posts/vibe-coding-engineering-guide/
作者
rushzb
发布于
2026-09-28
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
rushzb
Let's go, AGI
分类
标签
最新动态

还没有发布动态

更多动态
站点统计
文章
5
动态
0
分类
2
标签
27
总字数
26,635
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
Cloudflare Pages
博客版本
Firefly v6.14.2
文章许可
CC BY-NC-SA 4.0