Skip to content

SOP:项目搭建

从需求到交付的完整 Vibe Coding 项目搭建流程。

适用场景

  • 从零开始搭建新项目
  • 为已有项目添加新模块
  • 任何需要从 spec 开始的任务

前置条件

  • 已安装 Claude Code 并完成认证
  • 有一个 git 仓库(空目录或有初始代码)
  • 准备好写 spec(你可以用下面的模板)

流程步骤

步骤 1:写 spec.md

用自然语言描述你要做什么。spec 是你与 AI 的契约——写得越具体,AI 越精确。

直接复制下面的模板开始填写:

markdown
# Spec:[项目名称]

## 概述
[一句话描述项目目标]

## 需求
- [需求 1:做什么]
- [需求 2:做什么]
- [需求 3:做什么]

## 约束
- 技术栈:[具体技术栈,如 Node.js + Express + SQLite]
- 语言:[TypeScript / Python / 等]
- 不使用:[明确排除的技术,如"不使用 MongoDB"、"不使用微服务"]
- 代码风格:[命名导出、async/await 等]
- 无外部依赖:[或列出允许的依赖]

## 成功标准
- [标准 1:如"所有 API 端点有对应测试"]
- [标准 2:如"npm run lint 无错误"]
- [标准 3:如"手动测试 CRUD 流程无误"]

## 不做的事
- [明确排除:如"不做用户权限管理"、"不做部署配置"]

spec 写作要点

  • 需求用动词开头:"添加"、"支持"、"实现"——不要写"要有 XX"
  • 约束写否定句:"不使用 XX"、"不改测试文件"——AI 会遵守否定约束
  • 成功标准可测试——写能用命令验证的标准("npm test 通过"),而不是模糊标准("代码质量好")
  • "不做的事"很重要——明确边界防止 AI 越界

步骤 2:让 AI 生成 plan.md

启动会话,让 Claude 基于 spec 生成实施计划:

读取 spec.md,生成 plan.md 实施计划。计划包含:
- 文件结构和目录布局
- 数据模型设计
- 模块边界和接口定义
- 实现顺序(哪些先做哪些后做)
- 每个步骤的预期产出

不要直接修改任何代码。

审查 plan.md: 重点检查:

  • 技术栈是否与 spec 约束一致?(AI 可能自行换技术栈)
  • 实现顺序是否合理?(先做数据模型 → 再做 API → 再做前端)
  • 是否有 spec 中"不做的事"出现在计划里?

步骤 3:审查 plan.md(推荐新会话)

重新开一个会话,让 Claude 以审查者视角检查 plan:

读取 spec.md 和 plan.md。审查 plan 是否:
1. 遵守了 spec 中所有约束
2. 没有遗漏 spec 中任何需求
3. 实现顺序合理(依赖关系正确)
4. 没有过度工程化

列出发现的风险和遗漏。不要修改任何文件。

新会话没有"原作者的思维惯性"——审查更客观。

步骤 4:让 AI 生成 tasks.md

审查通过后,让 Claude 把计划拆解为可逐条执行的清单:

读取 plan.md,生成 tasks.md 任务清单。每条任务:
- 一行描述,动词开头
- 带状态标记 [ ] / [x]
- 按实现顺序排列
- 每条任务可以独立完成和验证

每 2-3 条任务应能在一个会话内完成。

步骤 5:逐条执行

每个会话只做几条任务,完成后标记 [x],提交 checkpoint:

开始执行 tasks.md 中的任务 1-3:[具体任务描述]

完成后运行测试确认没有引入新错误。

每做完一批任务:

  1. 审查变更
  2. 运行测试
  3. git add + git commit(checkpoint)
  4. 更新 tasks.md 中的 [ ][x]

步骤 6:验证交付

所有任务完成后:

运行完整测试套件和 lint 检查。确认所有 spec.md 中的成功标准都满足。

可复用模板

spec.md 模板

markdown
# Spec:[项目名称]

## 概述
[一句话描述]

## 需求
- [需求列表]

## 约束
- 技术栈:[具体]
- 不使用:[排除]
- [其他约束]

## 成功标准
- [可测试的标准列表]

## 不做的事
- [排除列表]

plan.md 模板

markdown
# Plan:[项目名称]

## 文件结构
[目录布局和文件列表]

## 数据模型
[核心数据模型定义]

## 模块边界
[模块职责划分和接口]

## 实现顺序
1. [步骤 1]
2. [步骤 2]
3. [步骤 3]

## 风险
- [风险 1] → 对策:[对策]
- [风险 2] → 对策:[对策]

tasks.md 模板

markdown
# Tasks:[项目名称]

- [ ] 1. [任务 1]
- [ ] 2. [任务 2]
- [ ] 3. [任务 3]
- [ ] 4. [任务 4]
- [ ] 5. [任务 5]
- [ ] 6. [任务 6]
- [ ] 7. [任务 7]

常见问题

Q:spec 写多细合适? A:足够让 AI 不做你没要求的决策,但不用写 API 参数签名这种细节。目标是"AI 在每个决策点都有明确的指引"。

Q:plan 审查后发现重大问题怎么办? A:修改 spec.md(调整约束),让 AI 重新生成 plan。不要在 plan 上手动修改——重新生成更干净。

Q:执行中发现 spec 需要调整? A:停下来,更新 spec.md,让 AI 重新生成受影响的 plan 和 tasks 部分。不要在执行中随意偏离 spec——那会让 tasks.md 失去追踪价值。

与其他 SOP 的关系

基于 MIT 协议发布