关于 tracer-bullets
tracer-bullets 是一种分层开发方法,建议先构建并验证贯穿各层的最小功能切片,再逐步扩展。它面向需要快速获得反馈的开发任务,并指出简单或已拆分的工作可跳过此流程。
主要功能
- 01按端到端切片构建功能
- 02每个切片完成后验证
- 03以单次 Agent 会话为切片范围
- 04用首个功能建立实现模式
- 05识别适用与可跳过的任务
适用场景
- 01逐步实现并验证 CRUD 功能
- 02将导入或向导拆成端到端步骤
- 03避免先完成所有后端或前端再联调
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ oakoss/ agent-skills --skill tracer-bullets安装后在 Claude Code 中输入/tracer-bullets确认已加载。
详细介绍
示踪弹
通过所有层构建功能的垂直切片,并在开始下一个切片之前验证每个切片。摘自《The Pragmatic Programmer》:尽可能快速地获取反馈。不要孤立地构建水平层(先完成所有端点,再完成所有 UI,最后完成所有测试)。构建一条精简的垂直路径,验证其可用,然后再扩展。
单层改动、单文件 Bug 修复,或任务跟踪器已将工作拆分为有序垂直切片的情况,可跳过此做法。
快速参考
| 原则 | 做法 |
|---|---|
| 垂直优先于水平 | 构建贯穿所有层的一个切片,而不是横跨所有功能的一层 |
| 验证后再推进 | 在进入下一个切片前,确保测试通过、页面正常渲染、往返流程可用 |
| 每个会话完成一个切片 | 每个切片都应能在单个 Agent 会话中完成 |
| 第一个功能确立模式 | 第一个 CRUD 功能确立约定;后续 CRUD 功能会更快 |
| 构建前先检查 | 任务跟踪器可能已经将工作拆分为多个切片 |
| 简单情况可跳过 | 单层工作或已验证的模式无需遵循此流程 |
CRUD 功能切片
| 切片 | 范围 | 验证内容 |
|---|---|---|
| 1 | 后端/API + 测试(无 UI) | 数据层正常工作、约定已确立,且测试能够证明这一点 |
| 2 | 显示真实数据的列表页 | 数据从 DB -> 服务端 -> 渲染后的页面流转 |
| 3 | 创建对话框 | 完整往返流程:表单 -> 服务端 -> DB -> 刷新 |
| 4 | 编辑 + 删除 | 完整 CRUD 循环、变更模式、确认对话框 |
| 5 | E2E 测试 | 固化整个功能 |
非 CRUD 场景的调整
原则相同,切片方式不同:
- 导入流程:解析一行 -> 显示一行 -> 校验 + 去重 -> 审核 + 提交
- 仪表板:一个包含真实数据的小组件 -> 空状态/引导状态 -> 包含所有小组件的布局
- 搜索/命令面板:一种实体类型 -> 所有实体类型 -> 快捷操作
- 多步骤向导:端到端完成第一步 -> 一次添加一个步骤 -> 最终提交
常见错误
| 错误 | 正确做法 |
|---|---|
| 在任何 UI 之前就构建所有 API 端点 | 构建一个端点及其 UI 和测试,然后再处理下一个 |
| 后端尚未经过测试就开始构建 UI | 切片 1 仅包含后端和测试;先证明数据层可用 |
| 一次性构建完整的创建/编辑/删除 UI | 先创建对话框(切片 3),再处理编辑 + 删除(切片 4) |
| 跳过切片之间的验证 | 运行测试并检查输出,然后再开始下一个切片 |
| 切片太大,无法在单个会话中完成 | 进一步拆分;无法在单个会话中完成的切片就太大了 |
| 对简单的单层工作使用示踪弹 | 单个组件、单个工具函数或已有验证模式时,直接跳过 |
委派
- 拆分为子任务:编写代码前,使用项目的任务跟踪器创建有序的垂直子任务
- 隔离每个切片:将每个切片委派给子 Agent,避免故障扩散并保持上下文清晰
- 为非 CRUD 工作寻找切片边界:选择贯穿所有层的最小路径作为切片 1,然后逐步扩展
参考资料
无参考文件。来源:Tracer Bullets:控制 AI Slop
评论
支持 Markdown