基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
  • 知识卡片碎片时间过考点
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
    • AI 热点每日 AI 资讯与动向
AI 工作台
简历
旧版
AIHT
内容
精选全部 AI 动态热点榜AI 日报收藏
分类
模型行业编程产品技术观点开源
更多
Agent 接入
返回首页开发者导航
AIHT
精选 / 资讯详情
8.0
热点
AI SCORE
编程提效2026-11-08 18:16

用 BMAD 把模糊需求落成完整应用

dev.to · AI#Claude Code#需求工程#开发工作流
Editor brief · 编辑速览

作者以 Angular 与 Firebase 构建的 MemoIt 为例,展示从需求梳理到项目复盘的 BMAD 工作流。全过程使用 Claude Code 执行命令,代码及过程文档均提供仓库供查阅。

文章思维导图
Knowledge map
拖拽缩放
AI deep read

AI 深度解读

一个只有笔记、待办和愿望清单的小应用,值得安排产品经理、架构师、开发和三名审查员吗?作者用 MemoIt 跑了一遍 BMAD:从一句模糊需求出发,完成 7 个 epic、22 个 story,最后得到可运行的应用,也付出了约两天时间和多次等待用量恢复的成本。

这次实践最有用的发现,是先用可点击原型确认产品,再让代理按文档开发。流程确实抓出了并发、加载状态和极端日期问题,但没有消除人工判断,也没有包办视觉验收。

为什么文件比聊天记录更适合交接

MemoIt 使用 Angular,后端只有 Firebase Auth、Firestore 和 Hosting。它优先适配手机,也支持平板和桌面。账号由人在 Firebase 控制台手动创建,没有注册和共享,每个用户的数据彼此隔离。

作者使用 Claude Code 执行 slash commands,但 BMAD 的方法并不绑定它,也可以配合 GitHub Copilot 等工具。支撑流程的是 skills 和落盘文档:分析师澄清需求,产品经理维护 PRD,UX 定义交互,架构师固定约束,再拆任务、开发、审查和回顾。

BMAD 用角色、技能和文档组织软件开发流程

这里最关键的规则是:下游发现需求缺口,要回到上游文档修正,再重新生成派生文档。作者每个规划步骤都先执行 /clear,开新聊天,让文件承担记忆。

一个具体误会说明了它的价值。头脑风暴最初把「家庭共享」列为 Must,追问后才发现,作者要的是家人各自登录、数据隔离。若不及时纠正,后续权限模型就可能走偏。

/bmad-prd 最终整理出 FR-1 到 FR-14,以及 9 项非功能需求。作者再用 /bmad-prd remove push, put push and offline as deferred nice-to-have 延后推送和离线,架构也因此无需支持推送的服务端。

UX 阶段通过 /bmad-ux 生成描述外观的 DESIGN.md、描述行为的 EXPERIENCE.md,并补充 HTML mockup 和导航说明,采用可配置多色的 Material 3。作者看到页面后,才提出每屏都要能退出登录等要求。

随后,/bmad-architecture 把关键约束整理成 18 条 AD-n。AD-3 限定只用 Auth、Firestore 和 Hosting,项目检查发现 functions/ 目录就会失败。约束由此变成可检查的规则。

版本也需要核验。按作者当次查询包注册表的结果,TypeScript 7 已存在,但 Angular 22 只接受 6.0,因此锁定到 6.0.3。这是原文记录的兼容性结论,不能直接当作其他项目的升级依据。

为什么要在拆出 22 个 story 前做原型

作者在 UX、架构完成后,拆 epic 和 story 之前,额外插入了一步:生成单文件原型。这并非 BMAD 的标准路径。

下面这条命令解决的是行为验证,让人能真正走一遍产品流程:

/bmad-build create a clickable prototype of MemoIt in one HTML file, using the
mockups of the UX section, with login, categories, items, report and settings.
Data in memory only, no backend.

要看最后一行:数据只放内存,不接后端,刷新即可恢复初始状态。原型位于 doc/,无需先创建 Firebase 项目。

手机原型展示登录、清单操作和强调色设置

静态稿能确认布局,却很难验证点击完成、撤销、筛选、排序、截止日期和应用内提醒是否符合预期。作者在浏览器里还发现了手机字段越界、按钮没有按条件隐藏、示例数据不一致等问题。

原型的价值在于让产品负责人提前判断「这是不是我要的」。架构师也能看到自己需要支持的实际行为。发现问题后,先改原型和文档,再生成任务,避免错误假设进入 22 个 story。

让人先确认可操作的行为,再扩大自动实现的范围。

作者没有把项目重做一遍,因此无法给出节省工时的数据。「提前修正更便宜」有合理的工程解释,但这次实践没有量化它便宜多少。

三名审查员抓到了什么,又漏掉了什么

/bmad-create-epics-and-stories 生成了按依赖排序的 7 个 epic、22 个 story,每项功能需求至少由一个 story 覆盖。Story 1.1 就包括脚手架和 Firestore emulator 规则测试,作为 Could 的 PWA 排在最后,可以跳过。

作者依次执行 /bmad-sprint-planning check implementation readiness 和 /bmad-sprint-planning run sprint planning。检查返回 PASS,随后生成 sprint-status.yaml,登记任务和 7 次回顾。

实现阶段按 story 重复调用,例如 /bmad-build 3-3-mark-done-with-undo。它先写规格、实现,再启动三个独立上下文的审查员:一个只看 diff,一个寻找边界情况,一个检查验证缺口。发现的问题经过分诊,决定修复、记入 deferred-work.md,或判为无效。

Story 3.3 的乐观更新和 Undo 就暴露了并发问题:只有条目仍保持刚才写入的值时,撤销才应生效;条目若在别处被删除,本地列表也要移除。两项都得到修复,但「snackbar 按钮无法点击」属于误报。

每个 epic 完成后,还有一轮整体检查:

/bmad-code-review   (on the diff of the whole epic)
/bmad-build         (once, with the findings as intent)
/bmad-retrospective

注意第二行:作者只在审查发现待修问题时,才带着发现再执行 /bmad-build。

整体审查找到了单 story 不容易暴露的问题:分类尚未加载时,汇总错误显示为 0;截止年份设为 9999 时,图表生成数十万个时间桶。第一次回顾还指出,审查员面对 3000 行 diff 时,往往只认真读前面三分之一,因此大 diff 应拆开审。

最终记录是 365 个单元测试、68 个 Firestore emulator 规则测试、12 个 Playwright 端到端测试;每屏在明暗主题下运行 axe,9 种强调色的对比度都超过 AA 门槛。

这些数字证明作者留下了验证记录,却不能证明覆盖完整。开发过程中通过了 ng build 和测试,但端到端套件到最后才加入,中间的视觉检查主要依赖原型。功能审查仍漏过了一些外观和易用性问题。

我的判断

我最认可的是把决策、约束和延期事项写进仓库。新聊天可以接续工作,团队也能追溯「为什么这样做」。但文档状态写成 final,可能只代表已经决定并对齐,并不代表经过独立审查,这个区别必须保留。

原型也值得借鉴,但不能把内存原型的顺畅体验当作线上验收。它能验证操作路径,却不能验证真实网络、Firestore 权限和多客户端冲突。MemoIt 的审查恰好说明,这些问题仍要靠实现后的检查发现。

成本方面,作者认为 BMAD 的开发阶段比 GitHub Spec Kit 更重,主要消耗来自每个 story 后的三次独立审查,再加 7 次 epic 审查。不过原文没有同项目对照,也没有具体 token 账单,这仍是经验判断。

作者约两天完成项目,期间多次触及 Claude 订阅的 5 小时用量窗口,需要停下来等待。这个时间包含等待,不能据此推算纯开发效率。对 MemoIt 这样的小应用,全套流程也超过了单纯交付所必需的程度,作者接受它是为了学习方法。

流程应按改动规模选择,审查强度也应有明确理由。

作者最后修正设置页、分类密度、退出位置,以及退出后保留语言和强调色时,只用 /bmad-build。原文提到约 500 行的一次会话可走这种轻量路径,但没有证明它是普适阈值,更不能仅凭代码行数判断风险。

能拿来做什么

  • 给 AI 开发新功能前,先把用户边界和数据归属写清楚。尤其涉及账号隔离时,要像 MemoIt 一样尽早用 emulator 测试 Firestore 规则。
  • 对撤销、筛选、排序和设置联动较多的前端页面,先做内存数据原型,在手机和桌面浏览器里实际点击,再拆开发任务。
  • 把审查重点写得具体:乐观更新要查并发撤销,汇总要查加载状态,图表要查极端日期;跨模块行为再用整个 epic 的 diff 检查。
  • 小修复采用短流程,并保留必要的浏览器验收;大功能再补齐需求、架构和任务文档,同时记录误报与延期项,避免审查结论直接变成修改指令。
Original source

本文由 AI 通读原文后重新编写,观点部分为站内判断,细节以原文为准,来源 dev.to · AI,原文版权归原作者所有。

阅读原文
上一篇
用免费笔记本复现智能体提示注入
下一篇
Agent 安全应从收紧实际权限入手

资讯速览

dev.to · AI · 2026-11-08 18:16

AI 评分 8.0 / 10

相关标签

#Claude Code#需求工程#开发工作流

继续阅读

  • 实测新模型服务后,为何仍保留旧默认
  • 用免费笔记本复现智能体提示注入
  • Agent 安全应从收紧实际权限入手
  • 真实失败请求测评揭示编程智能体短板
  • 让编程智能体加功能时遵守现有设计