拒绝 Vibe Coding:为什么顶级 TS 大佬抛弃 Cursor 拥抱 Agent Skills?
在 AI 辅助编程领域,如果你还停留在“写一段注释让 Cursor 猜代码”的阶段,那你可能已经陷入了所谓的 Vibe Coding(凭感觉编程)陷阱。作为一名长期混迹于 GitHub、习惯于扒开每一行源码看逻辑的底层架构师,我最近在深度测评 Matt Pocock 的 Agent Skills 时,发现了一个非常硬核的真相:真正的工程化,不该是把逻辑交给 AI 的“幻觉”,而应该是将 AI 约束在结构化的 PRD 与决策树内。
很多人在对比 Agent Skills vs Cursor 时,按照官方文档跑一遍 npx skills@latest add 就以为大功告成了,结果往往在第一步就栽了跟头。
💡 报错现象总结:开发者在使用 Cursor 或类似 AI 工具时,经常遇到生成的代码缺乏工程上下文、PRD 逻辑断层或无法自动同步到 GitHub Issues 的情况。使用
Agent Skills时,若未正确配置to-prd权限或环境变量,会频繁抛出Error: Unable to synthesize conversation into a formal document或 API 鉴权超时。
从“对话框”到“工作流”:Cursor 的局限性与架构隐患
大多数人安利 Cursor,是因为它的补全够快、对话够顺。但在大型项目中,这种“对话驱动”模式简直是噩梦。Cursor 的底层逻辑是片段补全(Snippet Completion),它并不理解你的工程全局。
当你试图用 Cursor 生成一份完整的 PRD 并将其拆解为可落地的任务时,你会发现它生成的 Issue 极其零散,且缺乏**垂直切片(Vertical Slices)**的深度。
// 典型的 Vibe Coding 生成代码:逻辑散落在各个文件,缺乏统一的工程约束
export const useUser = () => {
// AI 拍脑袋想出来的状态管理,完全没考虑 PRD 中的权限边界
const [user, setUser] = useState(null);
return { user, setUser };
};
相比之下,Matt Pocock 的 skills 项目通过 to-prd 和 to-issues 两个核心技能,强制 AI 必须先从当前对话中萃取结构化的文档。它的核心架构逻辑是:不经过 grill-me(灵魂拷问)的方案,不准进入开发阶段。
| 特性维度 | Cursor (Vibe Coding 代表) | Agent Skills (真工程范式) |
|---|---|---|
| 驱动核心 | 概率预测(猜测你想要什么) | 逻辑闭环(基于讨论上下文合成 PRD) |
| 工程约束 | 弱,依赖开发者肉眼 Review | 强,内置 git-guardrails 和 grill-me |
| 任务分发 | 手动拷贝到 Issue | 自动调用 gh CLI 实现原生 Sub-issues 关联 |
| 决策质量 | 随大模型版本波动 | 通过并行子代理(Parallel Sub-agents)生成多个设计稿 |
源码追溯:to-prd 是如何强行矫正 AI “幻觉”的?
在 skills 的源码中,to-prd 并不是简单的总结。它通过一个极其精密的 system-prompt 模版,要求 AI 识别出当前的业务目标、用户故事和技术边界。
很多人在本地执行 npx skills@latest add mattpocock/skills/to-prd 时报错,原因在于该技能高度依赖宿主机的 gh CLI 状态。如果你的 gh auth status 没有返回正确的 Token,或者该 Token 缺乏 issues:write 权限,AI 合成的结果将永远无法持久化。
# 源码中典型的报错诱因:缺少对 GitHub CLI 状态的原子级校验
# 如果 gh 指令执行失败,Node 进程会直接退出,导致对话上下文丢失
execSync(`gh issue create --title "${title}" --body "${body}"`);
// 报错:error: insufficient scopes to create issue
更硬核的地方在于 design-an-interface 技能。它使用了 Parallel Sub-agents(并行子代理) 架构。它不是让一个 AI 想一个方案,而是同时启动多个隔离的子代理,生成三套甚至更多截然不同的接口设计方案,最后由主代理进行对比分析。这种“赛马机制”才是顶级 TS 大佬追求的架构稳定性。
原生态笨办法的痛苦修行
如果你想在不使用成熟工具链的情况下,手动复现这套流程,你将面临以下地狱级配置:
- 手动维护上下文:你需要不断地把对话记录拷贝到外部文档,手动排版成 PRD。
- 配置繁琐的 API 链条:为了实现自动化建 Issue,你需要自己写脚本去调用 GitHub REST API,处理各种 OAuth2 鉴权、Rate Limit 报错以及嵌套的
Sub-issues逻辑。 - 处理环境隔离:在 Node 环境、Python AI 环境和系统 CLI 之间平衡依赖。很多时候,你光是折腾
node_modules和系统环境变量的冲突就能耗掉一个下午。
更别提国内网络环境下,频繁拉取依赖导致的各种 ETIMEDOUT 错误,这种“救火式”开发会让你彻底丧失对技术的成就感。
顶级架构师的思维导图直达
与其在复杂的工程配置和 AI 调优中挣扎,不如直接看看那些顶级 TS 大佬是如何拆解项目逻辑的。为了让你彻底理清 Agent Skills 的核心运作机理,并告别低效的 Vibe Coding 模式,我为你准备了一份现成的“解药”。
我已经在 GitCode 独家整理了一份 《Agent Skills 核心架构逻辑思维导图》。这份导图详细拆解了 to-prd 的提示词链条、grill-me 的决策树分叉逻辑,以及如何绕过各种环境报错的实战配置。直接访问 GitCode,搜索该导图,一键完成从“写代码”到“做工程”的跨越。
[下载 GitCode 独家整理的《Agent Skills 架构思维导图》,开启你的顶级工程化之路。]
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0218
cann-learning-hubCANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。Jupyter Notebook0139
uni-appA cross-platform framework using Vue.jsJavaScript09
GLM-5.2智谱开源 GLM-5.2,这是针对长文本任务的最新旗舰模型。相较于前代产品 GLM-5.1,它在长文本任务处理能力上实现了显著飞跃,并且首次在稳定的 100 万 token 上下文中提供这一能力。Jinja00
SwanLab⚡️SwanLab - an open-source, modern-design AI training tracking and visualization tool. Supports Cloud / Self-hosted use. Integrated with PyTorch / Transformers / LLaMA Factory / veRL/ Swift / Ultralytics / MMEngine / Keras etc.Python00
tiny-universe《大模型白盒子构建指南》:一个全手搓的Tiny-UniverseJupyter Notebook03