Beads-BV Tracker
Smart task selection using PageRank, critical path, and graph analysis.
Beads-BV Tracker
The Beads-BV tracker extends the standard Beads tracker with intelligent task selection powered by bv (Beads Viewer). It uses graph algorithms like PageRank and critical path analysis to pick tasks that unblock the most downstream work.
Beads-BV is ideal for large projects with complex dependency graphs. It automatically prioritizes bottleneck tasks.
Prerequisites
Install both the Beads CLI and Beads Viewer:
Beads Viewer installation instructions: beads-viewer GitHub repo
Initialize Beads in your project:
Basic Usage
Important: By default, Ralph TUI only shows issues with the ralph label. Either add this label to your issues, or change the label filter during setup (leave blank to see all issues).
Create an Epic
First, create an epic to group your tasks. Add the ralph label:
Create Tasks as Children of the Epic
Tasks must be children of the epic (using --parent) to appear when running with --epic:
The --parent flag creates a parent-child hierarchy. Without it, tasks won't appear when filtering by epic.
Add Dependencies Between Tasks
Add dependencies so BV can analyze the graph and pick optimal tasks:
This creates the dependency graph:
Run with Beads-BV
BV will recommend "Database schema" first because completing it unblocks the most downstream work.
Configuration
CLI Flags
Config File
Options Reference
Same as the base Beads tracker:
| Option | Type | Default | Description |
|---|---|---|---|
beadsDir | string | .beads | Path to .beads directory |
epicId | string | - | Epic ID to filter tasks (set via --epic flag) |
labels | string | ralph | Comma-separated label filter (issues must have these labels) |
workingDir | string | . | Working directory for commands |
See the Beads Tracker docs for details on label filtering.
How BV Selects Tasks
BV uses graph analysis to rank tasks. The --robot-triage command returns:
Score Components
| Metric | Description |
|---|---|
| PageRank | Node importance in dependency graph |
| Betweenness | How often task is on critical paths |
| Blocker Ratio | How many tasks this unblocks |
| Staleness | How long task has been open |
| Priority Boost | Original priority factored in |
Example Output
Task Reasoning
Beads-BV provides reasoning for why each task was selected:
This appears in the TUI task details panel.
Fallback Behavior
If bv is not installed or fails, Beads-BV automatically falls back to standard Beads behavior (priority + order). You'll see a warning:
BV Robot Flags
The plugin uses BV's robot flags for deterministic output:
| Flag | Purpose |
|---|---|
--robot-triage | Get ranked recommendations |
--robot-next | Get single top pick |
--robot-plan | Get parallel execution tracks |
--robot-insights | Get full graph metrics |
Manual BV Usage
You can run BV commands directly for insights:
Graph Analysis Benefits
Simple Priority vs Graph Analysis
Consider this dependency graph:
Simple priority might pick A, B, C in order.
BV analysis picks D first because:
- D is a bottleneck (3 tasks depend on it)
- Completing D unblocks E immediately
- A, B, C can be done in parallel afterward
Critical Path
BV identifies the critical path - the longest sequence of dependent tasks. Tasks on this path are prioritized because delays cascade.
Cycle Detection
BV detects dependency cycles that would deadlock execution:
Fix cycles with:
Triage Stats
BV provides project health metrics:
The TUI displays these in the status bar when using Beads-BV.
How It Works
When Ralph TUI runs with Beads-BV:
- Detect: Check for
.beads/,bd, andbvCLIs - Triage: Run
bv --robot-triagefor recommendations - Filter: Apply epic and label filters to recommendations
- Select: Pick top-scored task
- Augment: Add BV reasoning to task metadata
- Execute: Run agent with enriched task prompt
- Refresh: Update triage after task completion
Automatic Refresh
After each task completes, BV triage data is refreshed in the background. This ensures recommendations stay current as the graph changes.
Beads-BV vs Beads
| Feature | Beads | Beads-BV |
|---|---|---|
| Task selection | Priority + order | Graph-optimized |
| PageRank | No | Yes |
| Critical path | No | Yes |
| Unblock analysis | No | Yes |
| Extra dependency | None | bv CLI |
| Fallback | N/A | To Beads |
Use Beads for simple projects, Beads-BV for complex dependency graphs.
Troubleshooting
"bv binary not found"
Install Beads Viewer from beads-viewer GitHub repo.
"Falling back to basic beads"
BV failed - check:
bv --versionworks.beads/beads.jsonlexists- No syntax errors in beads data
"Cycle detected"
You have circular dependencies. Find and fix:
"Wrong task selected"
BV might select a task you didn't expect. Check its reasoning:
The score breakdown explains why it was chosen.
Advanced: Custom Triage
For custom selection logic, you can query BV directly:
Next Steps
- Beads Tracker - Base Beads without graph analysis
- JSON Tracker - Simple file-based tracking
- Plugin Overview - Understanding the plugin system