615 - 《基于 Neovate Code 的 AI 编程最佳实践》
注:AI 辅助创作,但观点是自己的。
AI 编程的难点不是"能不能生成代码",而是"能否稳定交付"。
Andrej Karpathy 在 2025 年初提出了 Vibe Coding 的概念:向 AI 描述需求,AI 生成代码,你不做 review,只关注最终产出。这种方式适合快速验证和业余项目,但对于生产项目而言,显然不够。
于是有了 Vibe Engineer:在 Vibe Coding 的基础上,加上工程化——自动化测试、详细的 spec 和文档、版本管理、code review、人为审查。人在此发挥的作用是:提供清晰的指令、管理上下文、验证输出、做顶层设计。
以我自己为例:Feature 开发时一天 Commit 能到 40+,功能开发基本指哪打哪,80% 代码由 Neovate Code 完成,95% 代码由 AI 完成。这不是炫技,而是 Vibe Engineer 方法论落地后的真实效率。
本文以 Neovate Code(读作 ['niːəʊveɪt])为例,分享我在日常开发中总结的最佳实践。Neovate Code 是一个开源的 Code Agent,内置 AI 编程最佳实践,支持生成代码、修复 bug、代码审查、添加测试等,可以交互式运行、headless 模式运行,或通过 SDK 封装自己的 Code Agent。
针对 AI 编程的六个核心挑战,我将介绍六个对应的解法:
- 复杂需求返工多 → Spec Driven
- 串行低效 → Parallel Agents
- 定制化需求难满足 → Skills & Slash Commands
- 重复操作繁琐 → AI 辅助命令
- CI/CD 与自动化难集成 → Headless
- 二次开发缺乏接口 → SDK
挑战一:复杂需求返工多 → Spec Driven
问题
需求到实现之间有 100 条路可以走。直接 prompt → code,AI 生成的方案可能和你预期的完全不同。
更常见的情况是:你让 AI 出 plan,它输出几百行的文字墙。你没耐心看完,心想"大概没问题吧",然后直接执行。结果不符合预期,反复返工。
解法:Spec Driven
根据场景复杂度,我有三种做法:
- 简单场景:直接 prompt → code
- 复杂但方案笃定:prompt → plan → code
- 复杂但方案不笃定:prompt → brainstorm → design → code
关键在 Brainstorm 模式。它通过 1-10+ 道选择题,一小块一小块地让你做决策,而不是一次性甩给你几百行 plan。这样做的好处是:用户和 AI 对整体设计都有清晰认识,减少黑盒和 vibe coding。
操作上,shift-tab 两次切到 brainstorm 模式。脑暴完成后,要求 AI「save the design to docs/design」存档。Design Doc 比 Plan Doc 更适合人阅读——全面但不冗余,也方便团队协作和回溯。

工程化支撑:
esc-esc回滚会话,减少无用 context 累积/spec:save-design保存设计方案/spec:write-plan生成详细执行计划/spec:execute-plan按计划执行

挑战二:串行低效 → Parallel Agents
问题
一个项目只能跑一个任务,等 AI 响应的时间被浪费,多个需求只能排队处理。
解法:Parallel Agents
核心理念:同时雇 N 个 Agent 实习生帮你干活,每个 Agent 跑在独立环境,互不干扰。
技术上基于 Git Worktree 实现隔离。Git Worktree 允许一个仓库同时 checkout 多个分支到不同目录,共享核心仓库数据,分离工作区状态。
命令:
neovate workspace create # 创建独立工作区
neovate workspace list # 列出所有工作区
neovate workspace complete # 完成并合并/提PR
完整 Workflow:
workspace create → brainstorm → save design → implement → workspace complete

实际并发量的思考:理论上可以开很多 workspace,但人脑极限通常是 2-3 个需求。不是每个需求都需要独立 workspace,小改动冲突不大,根据复杂度灵活选择。
多端支持:
- CLI:命令行操作
- Desktop:一个界面管理所有项目的所有需求
- Background/Remote:长任务异步执行

挑战三:定制化需求难满足 → Skills & Slash Commands
问题
每个团队、每个项目有不同的规范和流程。重复的操作每次都要手写 prompt。希望沉淀最佳实践,降低使用门槛。
解法:两种扩展机制
1. Slash Commands - 用户主动调用
你输入 /command 触发,适合固定流程的操作。
示例:
/rev