ralph-tui-create-beads-rust by subsy/ralph-tui
npx skills add https://github.com/subsy/ralph-tui --skill ralph-tui-create-beads-rust使用 beads-rust (br CLI) 将 PRD 转换为 beads(史诗 + 子任务),供 ralph-tui 自主执行。
注意: 此技能使用 beads-rust 的
br命令。如果您安装的是原始 beads (bd),请使用ralph-tui-create-beads技能。
获取一个 PRD(markdown 文件或文本)并使用 br 命令创建 beads:
ralph-tui run --tracker beads-rust 使用广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
在 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
提取:
pnpm typecheck)如果不存在质量门部分: 询问用户哪些命令应该通过,或使用合理的默认值,如 npm run typecheck。
Beads 使用 br create 命令和 HEREDOC 语法 来安全处理特殊字符:
# Create epic (link back to source PRD)
br 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)
br create \
--parent=EPIC_ID \
--title="[Story Title]" \
--description="$(cat <<'EOF'
[Story description with acceptance criteria INCLUDING quality gates]
EOF
)" \
--priority=[1-4]
关键: 始终对 HEREDOC 分隔符使用
<<'EOF'(单引号)。这可以防止 shell 解释描述中的反引号、$variables和()。
每个故事必须能在一个 ralph-tui 迭代中完成(约一个代理上下文窗口)。
ralph-tui 每次迭代都会生成一个新的代理实例,没有先前工作的记忆。如果一个故事太大,代理会在完成之前耗尽上下文。
经验法则: 如果你不能用 2-3 句话描述这个变更,那就太大了。
故事按依赖顺序执行。较早的故事不能依赖于较晚的故事。
正确顺序:
错误顺序:
br dep add 设置依赖关系使用 br dep add 命令指定哪些 beads 必须先完成:
# Create the beads first
br create --parent=epic-123 --title="US-001: Add schema" ...
br create --parent=epic-123 --title="US-002: Create API" ...
br create --parent=epic-123 --title="US-003: Build UI" ...
# Then add dependencies (issue depends-on blocker)
br dep add ralph-tui-002 ralph-tui-001 # US-002 depends on US-001
br dep add ralph-tui-003 ralph-tui-002 # US-003 depends on US-002
语法: br dep add <issue> <depends-on> — 该 issue 依赖于(被阻塞于)depends-on。
ralph-tui 将会:
正确的依赖顺序:
每个 bead 的描述应包含验收标准,包括:
investorType 列,默认值为 'cold'"status: "open"如果 PRD 包含大型功能,请拆分它们:
原始内容:
"添加朋友外联跟踪,使用不同的消息传递"
拆分为:
每个都是一个可以独立完成和验证的聚焦变更。
输入 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
输出 beads:
# Create epic (link back to source PRD)
br 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)
br 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)
br 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
br dep add ralph-tui-002 ralph-tui-001
# US-003: UI story
br 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
br dep add ralph-tui-003 ralph-tui-002
创建 beads 后,同步以导出到 JSONL(用于 git 跟踪):
br sync --flush-only
这将 SQLite 数据库导出到 .beads/issues.jsonl 以进行版本控制。
Beads 存储在:.beads/ 目录(SQLite DB + JSONL 导出)
创建后,运行 ralph-tui:
# Work on a specific epic
ralph-tui run --tracker beads-rust --epic ralph-tui-abc
# Or let it pick the best task automatically
ralph-tui run --tracker beads-rust
ralph-tui 将会:
<promise>COMPLETE</promise>br dep add 添加了依赖关系br sync --flush-only 以导出供 git 跟踪| 命令 | beads (bd) | beads-rust (br) |
|---|---|---|
| 创建 | bd create | br create |
| 依赖关系 | bd dep add | br dep add |
| 同步 | bd sync | br sync --flush-only |
| 关闭 | bd close | br close |
| 存储 | .beads/beads.jsonl | .beads/*.db + JSONL 导出 |
每周安装次数
587
仓库
GitHub 星标数
2.2K
首次出现
Jan 21, 2026
安全审计
安装于
claude-code459
opencode192
codex140
cursor87
gemini-cli80
github-copilot77
Converts PRDs to beads (epic + child tasks) for ralph-tui autonomous execution using beads-rust (br CLI).
Note: This skill uses the
brcommand from beads-rust. If you have the original beads (bd) installed instead, use theralph-tui-create-beadsskill.
Take a PRD (markdown file or text) and create beads using br commands:
ralph-tui run --tracker beads-rustLook 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 br create command with HEREDOC syntax to safely handle special characters:
# Create epic (link back to source PRD)
br 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)
br 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:
br dep addUse the br dep add command to specify which beads must complete first:
# Create the beads first
br create --parent=epic-123 --title="US-001: Add schema" ...
br create --parent=epic-123 --title="US-002: Create API" ...
br create --parent=epic-123 --title="US-003: Build UI" ...
# Then add dependencies (issue depends-on blocker)
br dep add ralph-tui-002 ralph-tui-001 # US-002 depends on US-001
br dep add ralph-tui-003 ralph-tui-002 # US-003 depends on US-002
Syntax: br 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)
br 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)
br 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)
br 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
br dep add ralph-tui-002 ralph-tui-001
# US-003: UI story
br 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
br dep add ralph-tui-003 ralph-tui-002
After creating beads, sync to export to JSONL (for git tracking):
br sync --flush-only
This exports the SQLite database to .beads/issues.jsonl for version control.
Beads are stored in: .beads/ directory (SQLite DB + JSONL export)
After creation, run ralph-tui:
# Work on a specific epic
ralph-tui run --tracker beads-rust --epic ralph-tui-abc
# Or let it pick the best task automatically
ralph-tui run --tracker beads-rust
ralph-tui will:
<promise>COMPLETE</promise> when epic is donebr dep add after creating beadsbr sync --flush-only to export for git tracking| Command | beads (bd) | beads-rust (br) |
|---|---|---|
| Create | bd create | br create |
| Dependencies | bd dep add | br dep add |
| Sync | bd sync | br sync --flush-only |
Weekly Installs
587
Repository
GitHub Stars
2.2K
First Seen
Jan 21, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
claude-code459
opencode192
codex140
cursor87
gemini-cli80
github-copilot77
Google Sheets 费用追踪器创建指南 - 使用 Google Workspace CLI 自动化记账
6,000 周安装
OpenAPI 转 TypeScript 工具 - 自动生成 API 接口与类型守卫
563 周安装
数据库模式设计器 - 内置最佳实践,自动生成生产级SQL/NoSQL数据库架构
564 周安装
Rust Unsafe代码检查器 - 安全使用Unsafe Rust的完整指南与最佳实践
564 周安装
.NET并发编程模式指南:async/await、Channels、Akka.NET选择决策树
565 周安装
韩语语法检查器 - 基于国立国语院标准的拼写、空格、语法、标点错误检测与纠正
565 周安装
技能安全扫描器 - 检测Claude技能安全漏洞,防范提示注入与恶意代码
565 周安装
| Close | bd close | br close |
| Storage | .beads/beads.jsonl | .beads/*.db + JSONL export |