ralph-tui-create-beads by subsy/ralph-tui
npx skills add https://github.com/subsy/ralph-tui --skill ralph-tui-create-beads将 PRD 转换为 beads(史诗 + 子任务),以便 ralph-tui 自主执行。
注意: 此技能与 ralph-tui 的 Beads 追踪器插件捆绑。未来的追踪器插件(Linear、GitHub Issues 等)将捆绑其自己的任务创建技能。
获取一个 PRD(markdown 文件或文本)并在 .beads/beads.jsonl 中创建 beads:
ralph-tui run --tracker beads 使用在 PRD 中查找 "质量门" 部分:
## 质量门
以下命令必须对每个用户故事都通过:
- `pnpm typecheck` - 类型检查
- `pnpm lint` - 代码检查
对于 UI 故事,还需包含:
- 使用 dev-browser 技能在浏览器中验证
提取:
pnpm typecheck)广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
如果不存在质量门部分: 询问用户哪些命令应该通过,或使用合理的默认值,如 npm run typecheck。
Beads 使用 bd create 命令和 HEREDOC 语法来安全处理特殊字符:
# 创建史诗(链接回源 PRD)
bd create --type=epic \
--title="[功能名称]" \
--description="$(cat <<'EOF'
[来自 PRD 的功能描述]
EOF
)" \
--external-ref="prd:./tasks/feature-name-prd.md"
# 创建子 bead(验收标准中包含质量门)
bd create \
--parent=EPIC_ID \
--title="[故事标题]" \
--description="$(cat <<'EOF'
[包含验收标准(含质量门)的故事描述]
EOF
)" \
--priority=[1-4]
关键: 始终对 HEREDOC 分隔符使用
<<'EOF'(单引号)。这可以防止 shell 解释描述中的反引号、$variables和()。
每个故事必须能在一个 ralph-tui 迭代周期内完成(约一个代理上下文窗口)。
ralph-tui 每次迭代都会生成一个新的代理实例,没有之前工作的记忆。如果一个故事太大,代理会在完成之前耗尽上下文。
经验法则: 如果你无法用 2-3 句话描述这个变更,那就太大了。
故事按依赖顺序执行。较早的故事不能依赖于较晚的故事。
正确顺序:
错误顺序:
bd dep add 设置依赖关系使用 bd dep add 命令指定哪些 beads 必须先完成:
# 首先创建 beads
bd create --parent=epic-123 --title="US-001: 添加模式" ...
bd create --parent=epic-123 --title="US-002: 创建 API" ...
bd create --parent=epic-123 --title="US-003: 构建 UI" ...
# 然后添加依赖关系(问题依赖于阻塞项)
bd dep add ralph-tui-002 ralph-tui-001 # US-002 依赖于 US-001
bd dep add ralph-tui-003 ralph-tui-002 # US-003 依赖于 US-002
语法: bd dep add <issue> <depends-on> — 问题依赖于(被阻塞于)depends-on。
ralph-tui 将:
正确的依赖顺序:
每个 bead 的描述应包含验收标准,其中包含:
investorType 列,默认值为 'cold'"status: "open"如果 PRD 有大型功能,请拆分它们:
原始:
"添加朋友外联跟踪,包含不同的消息传递"
拆分为:
每个都是一个可以独立完成和验证的专注变更。
输入 PRD:
# PRD:朋友外联
添加将投资者标记为 "朋友" 以进行温暖外联的能力。
## 质量门
以下命令必须对每个用户故事都通过:
- `pnpm typecheck` - 类型检查
- `pnpm lint` - 代码检查
对于 UI 故事,还需包含:
- 使用 dev-browser 技能在浏览器中验证
## 用户故事
### US-001:向投资者表添加 investorType 字段
**描述:** 作为开发者,我需要将投资者分类为 'cold' 或 'friend'。
**验收标准:**
- [ ] 添加 investorType 列:'cold' | 'friend'(默认 'cold')
- [ ] 成功生成并运行迁移
### US-002:向投资者列表行添加类型切换
**描述:** 作为 Ryan,我希望直接从列表中切换投资者类型。
**验收标准:**
- [ ] 每行都有 Cold | Friend 切换
- [ ] 切换时显示确认对话框
- [ ] 确认后:更新数据库中的类型
### US-003:按类型过滤投资者
**描述:** 作为 Ryan,我希望过滤列表以仅查看朋友或 cold。
**验收标准:**
- [ ] 过滤器下拉菜单:全部 | Cold | Friend
- [ ] 过滤器在 URL 参数中持久化
输出 beads:
# 创建史诗(链接回源 PRD)
bd create --type=epic \
--title="朋友外联跟踪" \
--description="$(cat <<'EOF'
用于获取反馈的温暖外联
EOF
)" \
--external-ref="prd:./tasks/friends-outreach-prd.md"
# US-001:无依赖(第一个 - 创建模式)
bd create --parent=ralph-tui-abc \
--title="US-001:向投资者表添加 investorType 字段" \
--description="$(cat <<'EOF'
作为开发者,我需要将投资者分类为 'cold' 或 'friend'。
## 验收标准
- [ ] 添加 investorType 列:'cold' | 'friend'(默认 'cold')
- [ ] 成功生成并运行迁移
- [ ] pnpm typecheck 通过
- [ ] pnpm lint 通过
EOF
)" \
--priority=1
# US-002:UI 故事(也包含浏览器验证)
bd create --parent=ralph-tui-abc \
--title="US-002:向投资者列表行添加类型切换" \
--description="$(cat <<'EOF'
作为 Ryan,我希望直接从列表中切换投资者类型。
## 验收标准
- [ ] 每行都有 Cold | Friend 切换
- [ ] 切换时显示确认对话框
- [ ] 确认后:更新数据库中的类型
- [ ] pnpm typecheck 通过
- [ ] pnpm lint 通过
- [ ] 使用 dev-browser 技能在浏览器中验证
EOF
)" \
--priority=2
# 添加依赖关系:US-002 依赖于 US-001
bd dep add ralph-tui-002 ralph-tui-001
# US-003:UI 故事
bd create --parent=ralph-tui-abc \
--title="US-003:按类型过滤投资者" \
--description="$(cat <<'EOF'
作为 Ryan,我希望过滤列表以仅查看朋友或 cold。
## 验收标准
- [ ] 过滤器下拉菜单:全部 | Cold | Friend
- [ ] 过滤器在 URL 参数中持久化
- [ ] pnpm typecheck 通过
- [ ] pnpm lint 通过
- [ ] 使用 dev-browser 技能在浏览器中验证
EOF
)" \
--priority=3
# 添加依赖关系:US-003 依赖于 US-002
bd dep add ralph-tui-003 ralph-tui-002
Beads 写入到:.beads/beads.jsonl
创建后,运行 ralph-tui:
# 处理特定的史诗
ralph-tui run --tracker beads --epic ralph-tui-abc
# 或让它自动选择最佳任务
ralph-tui run --tracker beads
ralph-tui 将:
<promise>COMPLETE</promise>bd dep add 添加了依赖关系每周安装次数
597
代码仓库
GitHub 星标数
2.2K
首次出现
2026 年 1 月 20 日
安全审计
安装于
claude-code466
opencode197
codex142
cursor90
gemini-cli82
github-copilot79
Converts PRDs to beads (epic + child tasks) for ralph-tui autonomous execution.
Note: This skill is bundled with ralph-tui's Beads tracker plugin. Future tracker plugins (Linear, GitHub Issues, etc.) will bundle their own task creation skills.
Take a PRD (markdown file or text) and create beads in .beads/beads.jsonl:
ralph-tui run --tracker beadsLook for the "Quality Gates" section in the PRD:
## Quality Gates
These commands must pass for every user story:
- `pnpm typecheck` - Type checking
- `pnpm lint` - Linting
For UI stories, also include:
- Verify in browser using dev-browser skill
Extract:
pnpm typecheck)If no Quality Gates section exists: Ask the user what commands should pass, or use a sensible default like npm run typecheck.
Beads use bd create command with HEREDOC syntax to safely handle special characters:
# Create epic (link back to source PRD)
bd create --type=epic \
--title="[Feature Name]" \
--description="$(cat <<'EOF'
[Feature description from PRD]
EOF
)" \
--external-ref="prd:./tasks/feature-name-prd.md"
# Create child bead (with quality gates in acceptance criteria)
bd create \
--parent=EPIC_ID \
--title="[Story Title]" \
--description="$(cat <<'EOF'
[Story description with acceptance criteria INCLUDING quality gates]
EOF
)" \
--priority=[1-4]
CRITICAL: Always use
<<'EOF'(single-quoted) for the HEREDOC delimiter. This prevents shell interpretation of backticks,$variables, and()in descriptions.
Each story must be completable in ONE ralph-tui iteration (~one agent context window).
ralph-tui spawns a fresh agent instance per iteration with no memory of previous work. If a story is too big, the agent runs out of context before finishing.
Rule of thumb: If you can't describe the change in 2-3 sentences, it's too big.
Stories execute in dependency order. Earlier stories must not depend on later ones.
Correct order:
Wrong order:
bd dep addUse the bd dep add command to specify which beads must complete first:
# Create the beads first
bd create --parent=epic-123 --title="US-001: Add schema" ...
bd create --parent=epic-123 --title="US-002: Create API" ...
bd create --parent=epic-123 --title="US-003: Build UI" ...
# Then add dependencies (issue depends-on blocker)
bd dep add ralph-tui-002 ralph-tui-001 # US-002 depends on US-001
bd dep add ralph-tui-003 ralph-tui-002 # US-003 depends on US-002
Syntax: bd dep add <issue> <depends-on> — the issue depends on (is blocked by) depends-on.
ralph-tui will:
Correct dependency order:
Each bead's description should include acceptance criteria with:
investorType column to investor table with default 'cold'"status: "open"If a PRD has big features, split them:
Original:
"Add friends outreach track with different messaging"
Split into:
Each is one focused change that can be completed and verified independently.
Input PRD:
# PRD: Friends Outreach
Add ability to mark investors as "friends" for warm outreach.
## Quality Gates
These commands must pass for every user story:
- `pnpm typecheck` - Type checking
- `pnpm lint` - Linting
For UI stories, also include:
- Verify in browser using dev-browser skill
## User Stories
### US-001: Add investorType field to investor table
**Description:** As a developer, I need to categorize investors as 'cold' or 'friend'.
**Acceptance Criteria:**
- [ ] Add investorType column: 'cold' | 'friend' (default 'cold')
- [ ] Generate and run migration successfully
### US-002: Add type toggle to investor list rows
**Description:** As Ryan, I want to toggle investor type directly from the list.
**Acceptance Criteria:**
- [ ] Each row has Cold | Friend toggle
- [ ] Switching shows confirmation dialog
- [ ] On confirm: updates type in database
### US-003: Filter investors by type
**Description:** As Ryan, I want to filter the list to see just friends or cold.
**Acceptance Criteria:**
- [ ] Filter dropdown: All | Cold | Friend
- [ ] Filter persists in URL params
Output beads:
# Create epic (link back to source PRD)
bd create --type=epic \
--title="Friends Outreach Track" \
--description="$(cat <<'EOF'
Warm outreach for deck feedback
EOF
)" \
--external-ref="prd:./tasks/friends-outreach-prd.md"
# US-001: No deps (first - creates schema)
bd create --parent=ralph-tui-abc \
--title="US-001: Add investorType field to investor table" \
--description="$(cat <<'EOF'
As a developer, I need to categorize investors as 'cold' or 'friend'.
## Acceptance Criteria
- [ ] Add investorType column: 'cold' | 'friend' (default 'cold')
- [ ] Generate and run migration successfully
- [ ] pnpm typecheck passes
- [ ] pnpm lint passes
EOF
)" \
--priority=1
# US-002: UI story (gets browser verification too)
bd create --parent=ralph-tui-abc \
--title="US-002: Add type toggle to investor list rows" \
--description="$(cat <<'EOF'
As Ryan, I want to toggle investor type directly from the list.
## Acceptance Criteria
- [ ] Each row has Cold | Friend toggle
- [ ] Switching shows confirmation dialog
- [ ] On confirm: updates type in database
- [ ] pnpm typecheck passes
- [ ] pnpm lint passes
- [ ] Verify in browser using dev-browser skill
EOF
)" \
--priority=2
# Add dependency: US-002 depends on US-001
bd dep add ralph-tui-002 ralph-tui-001
# US-003: UI story
bd create --parent=ralph-tui-abc \
--title="US-003: Filter investors by type" \
--description="$(cat <<'EOF'
As Ryan, I want to filter the list to see just friends or cold.
## Acceptance Criteria
- [ ] Filter dropdown: All | Cold | Friend
- [ ] Filter persists in URL params
- [ ] pnpm typecheck passes
- [ ] pnpm lint passes
- [ ] Verify in browser using dev-browser skill
EOF
)" \
--priority=3
# Add dependency: US-003 depends on US-002
bd dep add ralph-tui-003 ralph-tui-002
Beads are written to: .beads/beads.jsonl
After creation, run ralph-tui:
# Work on a specific epic
ralph-tui run --tracker beads --epic ralph-tui-abc
# Or let it pick the best task automatically
ralph-tui run --tracker beads
ralph-tui will:
<promise>COMPLETE</promise> when epic is donebd dep add after creating beadsWeekly Installs
597
Repository
GitHub Stars
2.2K
First Seen
Jan 20, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
claude-code466
opencode197
codex142
cursor90
gemini-cli82
github-copilot79
agent-browser 浏览器自动化工具 - Vercel Labs 命令行网页操作与测试
136,300 周安装
OpenAPI 转 TypeScript 工具 - 自动生成 API 接口与类型守卫
563 周安装
数据库模式设计器 - 内置最佳实践,自动生成生产级SQL/NoSQL数据库架构
564 周安装
Rust Unsafe代码检查器 - 安全使用Unsafe Rust的完整指南与最佳实践
564 周安装
.NET并发编程模式指南:async/await、Channels、Akka.NET选择决策树
565 周安装
韩语语法检查器 - 基于国立国语院标准的拼写、空格、语法、标点错误检测与纠正
565 周安装
技能安全扫描器 - 检测Claude技能安全漏洞,防范提示注入与恶意代码
565 周安装