阅读材料: 第12部分. MVP

模块「第12部分. MVP」中第 1 / 5 节课
您正在未登录状态下查看课程。 请登录,以保存进度并参加测试。

第12部分:MVP

MVP阶段与常规功能阶段不同。在这里,你要求智能体实现的不是一个小片段,而是最小可行产品的剩余部分。这有风险。只有在项目规则、规范、测试和审查已经足够成熟时,才值得这样做。

MVP作为你规范的压力测试非常有用:如果智能体在阅读了宪法和功能规范后,构建的结果与你的预期不符,问题不仅仅在于智能体。很可能是规范给予了太多自由度,或者路线图不够清晰。

何时可以尝试MVP

合适的时机:

  • 至少有两个功能已经完成完整周期;
  • mission.mdtech-stack.mdroadmap.md 是最新的;
  • 有测试策略;
  • 有变更日志;
  • 你准备好审查大量变更;
  • 路线图包含明确的MVP边界。

不合适的时机:

  • 项目的第一个阶段;
  • 没有测试;
  • 路线图模糊不清;
  • 智能体经常越界;
  • 你无法抽出时间进行审查。

给Qwen Code的MVP请求

/clear
阅读 @QWEN.md、@specs/mission.md、@specs/tech-stack.md、@specs/roadmap.md
以及 @specs/ 中所有现有的功能规范。

我们正在考虑MVP分支。
暂时不要实现任何东西。

首先:
1. 找出路线图中MVP所需的最小剩余项目集;
2. 列出它们共同实现的风险;
3. 向我提出三组关于MVP边界、决策和审查的问题。

得到回答后:

创建 specs/YYYY-MM-DD-mvp/requirements.md、plan.md 和 validation.md。
计划应该分组,以便我可以要求分部分实现。
暂时不要编写实现代码。

MVP边界示例

# 需求 — MVP

## 边界

MVP应该让AgentClinic成为一个完整的小型演示:
- 主页;
- 智能体和疾病;
- 治疗方案;
- 预约请求表单;
- 管理面板摘要;
- 响应式样式;
- 关键路由的测试。

## 边界之外

- 认证。
- 支付。
- 邮件发送。
- 管理编辑界面。
- 外部部署。

## 决策

- 使用SQLite表和初始数据。
- 提交的表单本地保存。
- 所有内容服务器端渲染。
- 使用现有布局和CSS约定。

MVP审查

对于MVP,审查应该比小功能更严格:

## 自动检查

- npm run typecheck 成功通过。
- npm test 成功通过。
- 路由测试覆盖 /、/agents、/ailments、/therapies 和 /appointments。
- 数据库测试覆盖迁移和初始数据。

## 手动检查

- 在全新克隆中可以运行 npm install、npm run seed 和 npm run dev。
- 主导航可以到达所有MVP页面。
- 预约表单处理有效和无效输入。
- 在375px移动宽度下布局不损坏。
- 变更日志描述MVP分支。

## 偏差检查

- 没有添加认证。
- 没有添加客户端框架。
- 不需要外部服务。

按组实现MVP

即使MVP规范只有一个,实现也不一定一次完成。

只实现 @specs/2026-05-05-mvp/plan.md 中的第1组。
运行必要的检查。
停止并列出修改的文件。

然后:

实现第2组。
除非检查要求,否则不要编辑第1组的文件。

这样你可以保留方便检查的检查点。

何时停止:时间盒和回滚到最后一个绿色点

MVP分支容易膨胀。智能体实现了第1组,然后第2组,然后"顺便"开始调整第1组以适应第3组——一小时后,仓库状态就不清楚了。

提前确定两件事:时间预算和回滚点。

时间预算。 与自己(或团队)约定会话的时间盒。对于学习性质的MVP,这是2-4小时。当时间盒到期时,不是"再来一组"——而是停止、评估、决策。

回滚点。 在每组任务之前提交,即使是中间提交。提交后运行 npm run typecheck 并确认这个点是绿色的:

git commit -m "MVP group 1: agents page"
npm run typecheck
git tag mvp-green-1

如果下一组破坏了所有内容,而在合理时间内你无法理解如何修复——回滚到最后一个绿色状态:

git reset --hard mvp-green-1

这不是失败。这是一个信号,表明MVP规范对于特定组来说不够详细——应该用单独的小功能来完善,而不是在MVP分支中硬撑。

需要提前停止的迹象:

  • 智能体连续两次回到同一组而无法完成它;
  • git diff --stat 显示计划中任何组都没有的文件变更;
  • 某次实现后,之前通过的测试不再通过;
  • 智能体开始问"我可以顺便……"——这意味着MVP边界对它造成了阻碍,应该修改规范,而不是移动边界。

MVP后询问规范中的空白

最好的问题之一:

根据MVP的实现,告诉我哪些是你自己推断出来的,因为没有明确指定。
列出规范中的空白,并建议更新 mission、tech-stack、roadmap 或MVP规范。
不要修改文件。

如果智能体诚实地回答"我自己决定了X",这是一份礼物。如果决定重要,就把X记录到规范中。

实践

  • [ ] 在完成两个小阶段之前不要开始MVP。
  • [ ] 请Qwen Code评估准备情况。
  • [ ] 创建MVP规范。
  • [ ] 确定会话时间盒和回滚点。
  • [ ] 分部分实现MVP任务组,标记绿色点。
  • [ ] 进行偏差检查。
  • [ ] 更新项目规则和变更日志。

检查问题

  1. 为什么MVP是规范的"压力测试"?
  1. 大规模智能体实现之前需要满足哪些条件?
  2. 为什么MVP后需要询问智能体关于隐性推断?
我的笔记
0 / 10000

笔记保存在当前浏览器中。在其他设备上将不会显示。

课程菜单

课程

基于 Qwen Code CLI 的规范驱动开发
进度 0 / 135