2074 字
约 6 分钟
10
S24-J04 · 三工具对照与 Vibe Coding 的正确起点

适用读者:在 Codex / Claude Code / Cursor 之间选一个的人;听了一堆"Vibe Coding"但不知道从哪开始的人。
前置:S24-B01(认识 AI 编程工具)、B02(跑通第一个任务)、S21-J01(Agent 循环)、S19-J03(提示词四层)。
覆盖旧文:3659(AI 编程工具全景图)、3660(协作心态)、3661(什么是 Vibe Coding)、3662(Prompt 进阶)、3663(Prompt 基础)、3664(常用 Prompt 模式)、3665(从需求到 Prompt)、3667(Codex 安装配置)、3668(Cursor 安装配置)、3669(开发环境搭建)、3670(工具精通篇导读)、4586(vibe coding 教程)、3666(Codex 快速上手)、3688(Claude Code 快速上手)、3703(Cursor 快速上手)→ 15 篇 / 约 11 万字符。
扩展点:E-S24-015(三工具的四维对照:执行位置/权限模型/上下文注入/可扩展面)、E-S24-016(Vibe Coding 的适用边界与三条止损线)、E-S24-017(需求→Prompt 的六段转换法)。
下一篇:S24-J05 · 配置资产谱系。


1. 一句话结论

三个工具的差异不在"谁更聪明",在四个工程默认值:代码在哪跑(本机/云端/编辑器内)、权限默认多松、上下文自动注入什么、能用什么扩展。选型就是选这四个默认值与你团队的匹配度。

出处:A-3659(全景)、A-3667/A-3668(安装配置)、A-3666/A-3688/A-3703(三个快速上手)。


2. 四维对照(E-S24-015)

维度 Codex(CLI/云端) Claude Code(CLI) Cursor(IDE)
执行位置 本机 CLI + 云端任务(GitHub 触发) 本机 CLI(终端内) 编辑器内(VS Code 分支)
权限默认 沙箱 + 逐次审批;可配置放行档位 逐次审批(可 --dangerously-skip-permissions 慎用) 编辑器内改动 + diff 预览/接受
上下文注入 AGENTS.md(仓库根,层级向上查找)+ 自动读文件 CLAUDE.md(项目/用户级)+ 自动读文件 .cursor/rules + @文件/@符号 显式引用
可扩展面 MCP、Skills、Hooks、云端环境 MCP、Skills、Slash Commands、Subagents、Hooks、Plugins MCP、Rules、四大模式(Chat/Composer/…)
最强场景 长时间无人值守任务、批量改动、CI 集成 复杂多步重构、需要子代理并行 边写边改、交互式小步迭代

判据:"任务粒度决定工具"——

一次改 1~2 个文件、要即时反馈 → Cursor
一次改 10+ 文件、要跑测试与命令 → Claude Code / Codex CLI
要在 CI/PR 上自动跑、人不盯着 → Codex 云端任务

版本口径:三工具迭代极快(Codex CLI、Claude Code、Cursor 均在月级更新),本文对照的是"结构差异",具体命令与开关以官方文档当日版本为准(待核)。


3. Vibe Coding 的边界与三条止损线(E-S24-016)

Vibe Coding = 用自然语言描述意图,让模型生成并迭代代码,人做验收而非逐行编写
适合 不适合
原型/一次性脚本/内部工具 有强一致性与资金安全的核心链路
有完善测试与类型系统的代码库 无测试、无类型、无 code review 的库
个人或小团队探索性开发 多人并发改同一模块(合并冲突爆炸)
UI 调整、样板代码、迁移脚本 授权/加密/并发等安全敏感逻辑

三条止损线(触发即停手,回到人工):

① 连续 2 轮修复引入新问题(净增 bug)→ 停止对话式修补,回到最小复现 + 人工定位
② 一次改动跨 5 个以上模块且无法用测试覆盖 → 拆成可验证的小步
③ 模型开始"编造 API/配置项" → 停下核对官方文档,不要顺着改(幻觉会连锁)

判据:"能不能验证"决定能不能 vibe——有测试与类型系统的代码库,AI 改错能被立刻抓住;没有的话,错误会静默积累到上线。


4. 需求 → Prompt 的六段转换(E-S24-017)

① 目标:一句话说清"谁在什么场景下要什么结果"
② 现状:相关文件/函数/约束(贴真实代码,不描述)
③ 边界:不许动的部分(接口签名、数据库 schema、公共组件)
④ 验收:怎么判断做对了(测试用例、期望输出、性能数字)
⑤ 步骤:允许的改动顺序(先加测试再改实现)
⑥ 失败处理:信息不足时(提问/停下),不许猜

示例(可直接抄):

# ① 目标
让 /api/orders 支持按 created_at 区间筛选,并保持现有分页行为。

# ② 现状
<贴 OrderController#list、OrderQuery、对应 XML 的当前实现>

# ③ 边界
- 不改 OrderQuery 的字段顺序与既有字段名
- 不改数据库 schema;只允许加索引的迁移脚本
- 不改 PaginationResponse 结构

# ④ 验收
- 新增集成测试:区间边界(含首尾)、空区间、非法日期格式
- 现有 27 个测试全绿;P99 不劣化 >10%

# ⑤ 步骤
1) 先写失败测试 2) 改 Query/XML 3) 补索引脚本 4) 跑全量测试

# ⑥ 失败处理
信息不足时列出缺口并停止,不要臆造字段名或索引名。

判据:"③ 边界"和"⑥ 失败处理"是最少被写、也最省钱的两段——绝大多数"AI 改坏了"都发生在没写这两段的时候。


5. 协作心态:三条(3660 的重写)

心态 反面 说明
它是执行者,不是决策者 让它决定架构与取舍 方案选型、边界划分、安全策略必须人定
审阅是主要工作 只看 diff 大小就通过 读 diff 的语义,尤其错误处理与边界条件
小步提交 一次几千行改动 每步可回滚,出问题能二分

Code review 检查清单(AI 改动专用):

□ 有没有新增"看起来合理但没人要"的抽象?
□ 错误处理是吞掉了还是真的处理了?
□ 有没有把 catch 里塞 return null / 空数组?
□ 新增依赖是否必要(版本、许可证、体积)?
□ 测试是真断言还是"能跑就行"?
□ 有没有偷偷改公共接口/日志级别/配置默认值?

6. 反例:六种"Vibe 起来就收不住"

现象 根因
越改越乱 无边界段,模型自由重构
幻觉 API 顺着模型给的接口名往下写,没核对文档
测试全绿但线上报错 测试是模型写的,断言按实现写而非按需求
合并冲突地狱 多人同时让 AI 改同一模块
密钥进仓库 未限制读取 .env,也未配 ignore
无法回滚 一次提交几千行,没有分步

7. 自测

  1. 三工具的四个工程默认值?任务粒度如何决定选择?
  2. Vibe Coding 适合/不适合的场景?三条止损线?
  3. 需求→Prompt 六段?哪两段最常被漏?
  4. AI 改动 review 的六项检查?
答案
  1. 执行位置/权限默认/上下文注入/扩展面;小步交互用 Cursor,多文件改动用 CLI,CI 自动化用云端任务。
  2. 原型与有测试的代码库适合,核心链路与安全逻辑不适合;净增 bug、跨 5 模块无测试、开始编造 API。
  3. 目标/现状/边界/验收/步骤/失败处理;边界与失败处理。
  4. 多余抽象、错误处理、吞异常、新依赖、假测试、偷偷改公共接口。

8. 下一篇

S24-J05 · 配置资产谱系 —— AGENTS.md、CLAUDE.md、.cursor/rules、Skills、Slash Commands、Hooks、Plugins 七类资产:各管什么、写错的后果、以及一套跨工具可复用的写法。


本篇属于系列《S24 · AI 编程工具》。旧文来源:A-3659–3670、A-4586、A-3666/3688/3703(15 篇);扩展点 E-S24-015/016/017。工具版本按 2026-11 时点,具体命令以官方文档为准(待核)。

S24-J04 · 三工具对照与 Vibe Coding 的正确起点
https://www.clxhxhhr.top/posts/5570/
作者
clxstart
发布于
2024-12-31
许可协议
CC BY-NC-SA 4.0
评论
0 条
还没有评论,先写一条吧。