自动化与脚本
用 beads-rust 把 PRD 转成…
当你有一份 PRD,想用 ralph-tui 配合 beads-rust(br CLI)作为任务源进行自主执行时,把 PRD 拆解成 epic 和子 bead。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
用 beads-rust 把 PRD 转特定
解决思路
- 先从 PRD 的 “Quality Gates” 章节提取质量门禁:区分适用于所有故事的通用门禁(如 `pnpm typecheck`、`pnpm lint`)和仅适用于 UI 故事的门禁(如浏览器验证);若 PRD 中没有该章节,询问用户应通过哪些命令,或使用 `npm run typecheck` 之类的合理默认值。
- 用 `br create --type=epic` 创建 epic bead,并通过 `--external-ref="prd:./tasks/feature-name-prd.md"` 链接回源 PRD。
- 为每个用户故事创建一个子 bead:使用 `br create --parent=EPIC_ID --title="[Story Title]" --priority=[1-4]`,描述中包含故事验收标准并追加质量门禁。
- 所有 `br create` 的描述都使用 HEREDOC 语法,且分隔符必须写成单引号的 `<<'EOF'`,防止 shell 解释反引号、`$variables` 和 `()`。
- 确保每个故事足够小,能在一次 ralph-tui 迭代(约一个 agent 上下文窗口)内完成;若无法用 2-3 句话描述改动,就继续拆分。
- 按依赖顺序排列故事:先 schema/数据库迁移,再 server actions/后端逻辑,然后使用后端的 UI 组件,最后聚合数据的 dashboard/汇总视图;前面的故事不能依赖后面的故事。
- 创建完 bead 后用 `br dep add <issue> <depends-on>` 添加依赖(issue 依赖/被 depends-on 阻塞),例如 `br dep add ralph-tui-002 ralph-tui-001`。
- 每个 bead 的验收标准包含两部分:来自 PRD 的故事专属可验证标准,以及追加在末尾的质量门禁;UI 故事还要追加 UI 专属门禁(浏览器验证)。
- 验收标准必须可验证,例如 “Add `investorType` column to investor table with default 'cold'”“Filter dropdown has options: All, Cold, Friend”“Clicking toggle shows confirmation dialog”;避免 “Works correctly”“User can do X easily”“Good UX”“Handles edge cases” 这类模糊表述。
- 按转换规则处理:先提取质量门禁;每个用户故事对应一个 bead;第一个故事无依赖(建立基础);后续故事依赖其前置故事;优先级按依赖顺序再按文档顺序(0=critical,2=medium,4=backlog);所有故事 `status: "open"`。
- 若 PRD 功能过大,拆成多个聚焦改动,例如把 “Add friends outreach track with different messaging” 拆成:加 investorType 字段、列表 UI 加类型切换、好友阶段推进逻辑、好友消息模板、好友任务生成、按类型过滤、更新新投资人表单、更新 dashboard 计数。
- 创建完 bead 后运行 `br sync --flush-only`,把 SQLite 数据库导出到 `.beads/issues.jsonl` 以便 git 跟踪。
- 创建完成后用 `ralph-tui run --tracker beads-rust --epic ralph-tui-abc` 运行指定 epic,或 `ralph-tui run --tracker beads-rust` 让它自动挑选最佳任务;ralph-tui 会完成 bead 后关闭、所有子任务完成后关闭 epic,并在 epic 完成时输出 `<promise>COMPLETE</promise>`。
- 创建 bead 前按清单自检:已提取质量门禁(或询问用户);每个故事一次迭代可完成;故事按依赖排序(schema → backend → UI);每个 bead 的验收标准都追加了质量门禁;UI 故事有浏览器验证(若质量门禁中指定);验收标准可验证;没有故事依赖后面的故事;创建后用 `br dep add` 添加依赖;运行 `br sync --flush-only` 导出以便 git 跟踪。
- 注意 beads-rust(`br`)与原版 beads(`bd`)的命令差异:创建用 `br create`,依赖用 `br dep add`,同步用 `br sync --flush-only`,关闭用 `br close`,存储为 `.beads/*.db` + JSONL 导出。
- bead 存储在 `.beads/` 目录(SQLite DB + JSONL 导出)。
适用边界 · 注意事项
- 你安装的是原版 beads(`bd`)而不是 beads-rust(`br`)时,应改用 `ralph-tui-create-beads` 技能。
- PRD 中没有 Quality Gates 章节且用户也无法提供应通过的命令时,不要凭空假设,应先询问或使用合理默认值。
- 故事过大、无法在一次 ralph-tui 迭代内完成时,不要直接创建,应先拆分。