ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

BMAD-METHOD 入门实战:用 bmad-build 从空项目到第一个可运行程序

BMAD-METHOD 入门实战:用 bmad-build 从空项目到第一个可运行程序 BMAD-METHOD 入门实战用 bmad-build 从空项目到第一个可运行程序【免费下载链接】BMAD-METHODBreakthrough Method for Agile Ai Driven Development项目地址: https://gitcode.com/gh_mirrors/bm/BMAD-METHODBMAD-METHODBreakthrough Method for Agile AI Driven Development是一套面向 AI 辅助开发的方法论与技能集合核心实现单元是bmad-build技能。本文以官方入门教程 build-your-first-change.md 为主线带你从零开始在一个空目录中安装 BMad、用bmad-build把一个短句请求变成可运行的程序并完成运行验证与结果检查。读完本文你将掌握bmad-build的完整调用方式、它澄清需求 → 出计划 → 实现 → 自查 → 汇报的内部工作流以及如何用bmad-help自主排障从而能把同样的流程复用到你自己的仓库和真实改动上。环境准备与前置条件开始之前需要一台满足以下条件的开发机教程原文明确给出操作系统macOS 或 Linux 的 shell 环境。Node.js 20.12 或更高版本安装器依赖 Node 运行时见 install-bmad.md 的前置条件说明。Python 3教程目标程序使用 Python 标准库编写无需第三方依赖。一个受 BMad 支持的 AI 编码工具教程中的安装与启动命令以 Claude Code 为例如果你使用其他受支持工具在安装时选择它并在该工具中运行bmad-build技能即可。另外从 install-bmad.md 可知uv是运行 Python 类技能包括bmad-build与bmad-build-auto的运行时依赖如果环境缺少uv安装器会给出警告但仍会完成安装只是相关技能在安装uv之前无法正常工作。Git 仅在从 Git 安装外部模块或自定义模块时才需要。第一步创建空项目并安装 BMadBMad 的安装以项目目录为单位安装器默认使用当前目录。先建一个空目录并进入mkdir bmad-first-project cd bmad-first-project然后运行安装命令安装当前稳定版并为 Claude Code 完成配置npx bmad-method install --directory . --modules bmm --tools claude-code --yes对照 install-bmad.md 中的命令参数说明可以这样理解各参数的含义与作用参数作用说明--directory .指定安装目标目录缺省时使用当前目录教程传入.表示安装在刚创建的项目根下--modules bmm选择要安装的模块bmmBMad Method Modules是核心模块集合安装后提供bmad-build等核心技能--tools claude-code绑定 AI 编码工具决定技能安装到哪个工具的 skill 目录换用其他受支持工具时传入对应 ID--yes跳过交互提示让安装以无交互方式直接执行便于自动化与教程演示上面的写法属于无交互headless安装。官方推荐的全自动写法在 install-bmad.md 的 Headless CI installs 一节也有给出npx bmad-method install --yes --modules bmm --tools claude-code可以通过npx bmad-method install --help查看当前可用的自动化参数用npx bmad-method install --list-tools获取有效的工具 ID 列表。安装完成后安装器会显示 BMAD is ready to use! 成功摘要和 BMad 的安装路径BMad 的技能会被安装到所选工具的 skill 目录项目根下的_bmad目录则存放所有技能共享的配置与辅助脚本。提示想体验预发布版本时使用npx bmad-methodnext install预发布版本变更频繁、可能包含未完成改动日常项目工作建议始终使用稳定版命令。第二步启动编码工具并调用 bmad-build在项目目录中打开你的 AI 编码工具。以 Claude Code 为例claude随后向bmad-build技能发起请求让它实现著名的 Mars Rover 编程练习Mars Rover kata一个用于练习 TDD 与面向对象设计的小型编码训练题并且明确要求不添加任何设计取舍/bmad-build write an implementation of mars rover kata之所以这样措辞是因为把设计空间留给bmad-build本身它才有机会向你提问澄清。实际运行中它很可能从这样一个问题开始bmad-build: Before implementation, I need one choice: which language should I use? You: Python 3. Make it a small old-school terminal program I can run locally, with no dependencies beyond Python standard library.你得到的提问、回答、计划与最终程序都可能与本例不同——请根据你真正想要的行为作答而不是照抄示例回答。一次典型会话的完整节奏根据 build-a-change.md 的流程描述bmad-build的完整运行分为六个环节开启全新会话在 AI IDE 中新建一个聊天窗口。复用其他工作流的会话可能混淆上下文、干扰本次运行。表达意图意图可以在命令之前、之后或同时给出不需要组织得很整洁——一句话、一段语音转写、一个半成型的想法、一个 issue 链接、一个文件甚至一个计划好的 story 都可以作为输入。基于证据解析意图bmad-build会先调查代码库与上游规划产物只有仓库和规划上下文都无法定夺的问题才会变成待你回答的开放问题。必要时批准计划调查结束后它会报告三项关键事实——意图缺口你没说、但会在结果里注意到的内容、不可逆操作、影响范围。三项都干净时走轻量路径同一会话内产出精简 spec 并实现有任何一项被标记则先产出完整书面计划每个意图缺口都记录为开放问题等你批准后再动手。实现与自查计划获批后它实现改动、用独立评审视角复查自己的工作、修复属于本次改动的问题并在本地提交。复查是分诊而非倾倒所有意见属于当前改动的问题被修复与本次无关的既有问题被推迟如果代码错是因为计划弱、计划错是因为目标错它会回到对应层级重新生成而不是只修补 diff。检查结果完成后给出简短摘要并提供常见后续动作创建 PR、走查改动、继续下一个改动。回到本教程的会话回答完问题后阅读它给出的计划认可后批准或提出修改意见。随后bmad-build会写出程序、自查并修复问题最后向你展示改动了什么。第三步运行你的 Mars Rover 程序根据你在澄清环节做出的选择结果可能类似这样一个纯标准库实现的命令行程序python3 mars_rover.py --size 5x5 --obstacle 2,2进入程序后依次输入FFRFF、MAP、QUIT。终端会展示一辆在地图上移动、并在障碍物前停下的火星车MARS ROVER CONTROL Commands: F/M forward, B backward, L/R turn, MAP, STATUS, HELP, QUIT Position: (0, 0) Heading: N rover Position: (1, 2) Heading: E OBSTACLE: movement blocked at (2, 2) rover 4 . . . . . 3 . . . . . 2 . # . . 1 . . . . . 0 . . . . . 0 1 2 3 4 rover Mission control signing off.逐行解读这次运行输出启动参数--size 5x5定义了一块 5×5 的网格地图--obstacle 2,2在坐标 (2, 2) 放置了一个障碍物你实际得到的参数与程序界面可能不同取决于你与bmad-build的对话内容。F/M前进、B后退、L/R转向、MAP显示地图、STATUS查询状态、HELP帮助、QUIT退出。输入FFRFF后火星车先前进两格、右转、再前进两格到达坐标 (1, 2)、朝向 E随后遭遇 (2, 2) 处的障碍物输出OBSTACLE: movement blocked at (2, 2)表明移动被阻断。输入MAP后地图上用表示火星车当前位置与朝向#表示障碍物网格周围标注了行列坐标。运行结束后打开会话最后一条消息中列出的文件查看bmad-build生成的完整程序——这正是你验证它工作质量的第一手材料。第四步用 bmad-help 理解刚刚发生的事bmad-help技能用于回答关于 BMad 本身的问题理解刚才发生了什么、决定下一步做什么或者解决某个问题。在会话中直接提问/bmad-help Explain what bmad-build just did.从 skills/bmad/SKILL.md 的实现可以更清楚地认识这个技能的设计原则它对每一次请求都重新扫描宿主暴露的技能根目录不复用旧扫描结果项目技能会遮蔽用户技能若仍存在重复则以平局处理并明确告知。它只读取每个技能目录旁的module-manifest.toml模块清单按module键把已安装技能分组并依据清单中的knowledge字段指向的文档来给出路由建议——模块清单是磁盘上的成员名单帮助流程不会把未安装的技能报告为某集合缺失的成员。普通帮助请求是只读的不会去读_bmad下的配置缓存不会运行resolve_config.py不会写入任何文件也不会以副作用方式触发 setup/update 等流程。这意味着你可以放心地用bmad-help探索技能之间的关联它只回答、不改变你的安装状态。bmad-build 做了什么一个请求如何变成可运行软件Mars Rover 这个例子浓缩了bmad-build的核心价值把一个短请求变成可运行软件。整个过程包括澄清请求——通过开放问题补齐你未言明的设计决策本例如语言、界面形态、依赖约束给出计划供批准——报告意图缺口、不可逆操作与影响范围让你在写代码前就能纠正方向实现程序——按计划产出文件检查自己的工作——独立评审、分诊发现、修复属于本次改动的问题最后汇报改动。什么时候不需要走完整流程build-a-change.md 的 Size the Work 一节给出了务实的边界一个典型的bmad-build会话适合一个目标、大约 500 行左右不含测试的代码改动、涉及少量文件的工作。如果是一次你愿意自行审查的琐碎修改可以直接让 agent 改但只要有 bug 可能逃逸到生产环境就值得交给bmad-build。它还支持单次直达one-shot或跳过评审的显式要求——这些是面向原型验证或低风险改动的快捷选项。一次运行你会得到什么对照 build-a-change.md 的 What You Get 一节一次bmad-build运行的标准交付物包括应用了改动的源文件通过测试如果项目有测试套件一个带规范提交信息conventional commit message、可直接推送的提交该次运行的实现记录implementation record在有父级 spec 或 story 时保存在其旁边。此外如果一次请求包含多个相互独立的目标或评审发现了与本次改动无关的既有问题bmad-build会把它们写进实现产物目录下的deferred-work.md而不是一次做完所有事。每次运行结束后值得检查这个文件——它就是一份后续待办清单可以逐项喂给新的bmad-build会话。什么时候应该先规划再构建当改动影响多个系统、需要跨大量文件协调更新或范围不明确需要先做需求发现时应当先在 spec/PRD/UX/架构/story 层面做规划再交给bmad-build逐单元实现。这正是本教程开头提到的one-session planning path单会话规划路径一个连贯的请求直接进入bmad-build。完整的分级路径见 choose-a-planning-path.md——它用一句话概括决策要点意图是否已经定义清楚清楚了就交给 spec 与 Build不清楚就先在规划章节里把它弄清楚。更大的工作一个 epic 或多个 epic 的项目也只是在同一个 Build 单元外围叠加共享上下文并重复它并不会切换到另一套交付体系。你已经完成的事通过 Mars Rover你亲眼看到了bmad-build如何把一句简短请求转化为可运行软件它澄清请求、呈现计划供你批准、写出程序、自查并修复问题最后把结果展示给你。这也是 build-a-change.md 所描述的带人工检查点的单意图实现与评审技能的标准形态。下一步把同样的流程用在自己的仓库里在自有仓库安装并构建一个改动按 install-bmad.md 在你的仓库中安装 BMad然后用一句话描述一个小改动并运行bmad-build完整的有人值守路径见 build-a-change.md。在成熟代码库中走得更深继续阅读 getting-deeper.md先用一个小改动熟悉流程再使用书面 spec 支撑一个更大的改动。为更大的工作选择规划路径当你的下一个改动可能需要多次实现会话或多个 epic 时使用 choose-a-planning-path.md 决定该做多少规划。【免费下载链接】BMAD-METHODBreakthrough Method for Agile Ai Driven Development项目地址: https://gitcode.com/gh_mirrors/bm/BMAD-METHOD创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表