独立章节页 · 第 08 章

实战演练:从零完成一个功能

这一章用“考试报名管理”作为完整案例,把前面章节中的核心工作流真正串起来。 你可以把它理解为一份从需求到交付的实操脚本,适合团队一起演练或个人快速建立实战感。

章节定位:完整案例 案例主题:考试报名管理 适合角色:产品 / 开发 / 测试

章节总览

从初始化到提交,用一个真实案例跑完整条主线

这一章不是理论说明,而是一步一步带你完成“考试报名管理”功能的规格定义、计划拆解、实现、检查与提交。

0初始化确保项目可运行
1Constitution定宪法
2Specify写规格
3Clarify澄清
4Plan做计划
5Tasks拆任务
6Implement执行实现
7Analyze一致性检查
8Checklist质量核对
9Commit提交交付
Step 0

确保项目已初始化

开始案例之前,先确认项目已经具备 spec-kit 所需的基础目录和命令。

执行命令

cd your-project
specify init . --ai claude
目的

确保当前项目已经拥有 .specify/.claude/commands/ 等基础结构,否则后续斜杠命令无法正常落地到项目文件中。

Step 1

定宪法(仅首次需要)

第一次在项目里使用 spec-kit 时,先建立统一约束,后续所有功能都会复用。

在 Claude Code 中输入

/speckit.constitution

我们的项目是一个考试管理系统,使用 Java 17 + Spring Boot 3.x,
MySQL 8.0,MyBatis Plus。前端用 Vue 3。
请帮我建立项目宪法,包含技术栈约束、测试要求、安全规范、代码风格。
你会得到什么

一份结构化的项目宪法文件,后续 Plan、Tasks、Implement 等阶段都会参考它,不再需要每次重复说明技术约束。

Step 2

写规格

把“考试报名管理”这个功能,用自然语言转成结构化的规格文档。

输入示例

/speckit.specify

我们需要一个考试报名功能:
1. 考生可以在线报名,填写个人信息和报考科目
2. 系统验证身份证号是否合法,是否重复报名
3. 报名成功后发送短信通知
4. 管理员可以查看、导出报名列表
5. 报名有截止时间,到期自动关闭

这一阶段要做的事

  • 审阅自动生成的 specs/001-exam-registration/spec.md
  • 检查用户场景、功能需求、边界条件和成功标准是否完整。
  • 确认功能描述清楚,暂时不必深入技术实现细节。
Step 3

澄清模糊点

把规格里仍然模糊、未决或易引起歧义的点补充完整。

执行命令

/speckit.clarify

典型问题示例

例如 Claude 可能会追问:

  • 是否支持一人报名多个科目?
  • 报名截止后是否允许管理员代修改?
  • 短信通知失败时是否影响报名成功?

你需要给出明确决策,避免后续计划与实现阶段靠猜测推进。

Step 4

做技术计划

在实现前,先把数据模型、接口设计和复杂度评估梳理清楚。

执行命令

/speckit.plan

这一步重点审什么

  • plan.md 中的数据模型是否合理。
  • 接口设计是否和宪法中的规范一致。
  • 复杂度评估是否反映真实难点,例如上传、校验、导出等部分。
Step 5

拆解任务

把计划进一步拆成可执行、可跟踪、可回写进度的任务清单。

执行命令

/speckit.tasks

这一步重点审什么

  • 任务粒度是否合适,不能太粗也不能细到失去可读性。
  • 依赖关系是否正确,避免后续执行顺序混乱。
  • 并行标记是否合理,哪些任务能同时做,哪些必须串行。
Step 6

执行实现

进入真正的代码生成阶段,但依然是“受任务约束的实现”,不是自由发挥。

执行命令

/speckit.implement

实战中的协作方式

  • AI 会按任务清单逐步生成代码。
  • 你需要持续 Review 每一阶段输出,不满意的地方及时纠正。
  • 不要等全部写完再看,最好边生成边校正,避免累计偏差。
Step 7

一致性检查

确认规格、计划、任务和代码四者之间没有严重脱节。

执行命令

/speckit.analyze

这一步的处理原则

优先修复报告中的 CRITICALHIGH 级别问题。

  • 例如宪法冲突、未解决的模糊点、覆盖缺口等。
  • 不要把 Analyze 当成可选步骤,它是正式交付前的重要闸门。
Step 8

质量核对

在“代码写完”之后,再确认“需求是否真的都满足了”。

执行命令

/speckit.checklist

这一步要做什么

  • 逐条勾选检查清单。
  • 确认功能需求、边界条件和成功标准都已落地。
  • 避免“功能基本能用,但规格没有完全满足”的情况进入提测或提 MR。
Step 9

提交

当前面的规格、实现和核对都完成后,再进入常规 Git 提交流程。

提交示例

git add .
git commit -m "feat(exam-registration): implement exam registration feature per spec 001"
# 提 MR/PR
关键理解

spec-kit 不替代正常的软件交付流程。它负责把需求到实现的中间过程结构化、可追踪, 最后仍然要回到团队既有的 Code Review、MR / PR、测试与发布流程中。