JSON Tracker
Track tasks with a simple prd.json file - no external dependencies required.
JSON Tracker
The JSON tracker is the simplest way to use Ralph TUI. It reads tasks from a local prd.json file with no external dependencies - perfect for getting started quickly.
The JSON tracker is ideal for single-developer projects or when you want to try Ralph TUI without installing additional tools.
Prerequisites
None! Just create a prd.json file.
Basic Usage
Create a prd.json
Create a prd.json file in your project:
Run Ralph TUI
Watch Progress
As tasks complete, Ralph updates passes: true in your prd.json.
Configuration
CLI Flag
The primary way to use the JSON tracker is via the --prd flag:
This flag:
- Selects the JSON tracker automatically
- Sets the file path
Config File
You can also configure the tracker in TOML:
The --prd flag is recommended over config-file path because you likely have different prd.json files for different features.
prd.json Schema
The JSON tracker validates your file against a specific schema.
Root Object
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Project or feature name |
description | string | No | Project description |
branchName | string | No | Git branch for this work |
userStories | array | Yes | List of user stories/tasks |
metadata | object | No | Optional metadata |
User Story Object
| Field | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Unique identifier (e.g., "US-001") |
title | string | Yes | Short title |
description | string | No | Detailed description |
acceptanceCriteria | string[] | No | List of criteria |
priority | number | No | Priority (1 = highest, default: 2) |
passes | boolean | Yes | Whether task is complete |
labels | string[] | No | Tags for categorization |
dependsOn | string[] | No | IDs of blocking tasks |
notes | string | No | Additional notes |
Complete Example
Creating prd.json Files
AI-Powered Creation
The recommended way to create a prd.json:
This generates a PRD markdown file, then converts it to prd.json with the correct schema.
Manual Conversion
Convert an existing PRD markdown to JSON:
From Scratch
Create manually following the schema above. Start simple:
Dependencies
Tasks can depend on other tasks via dependsOn:
Ralph TUI won't select a task until all its dependencies have passes: true.
Priority
Lower priority numbers = higher priority (processed first):
| Priority | Meaning |
|---|---|
| 1 | Highest priority |
| 2 | Medium priority (default) |
| 3 | Lower priority |
| 4+ | Backlog |
Tasks are selected by priority, then by order in the array.
Task Selection
The JSON tracker selects the next task by:
- Filter to tasks with
passes: false - Filter to tasks with no unresolved dependencies
- Sort by priority (lowest number first)
- Return the first task
How It Works
When Ralph TUI runs with the JSON tracker:
- Load: Read and parse
prd.json - Validate: Check schema, reject invalid files with helpful errors
- Select: Find next task (ready, highest priority)
- Execute: Run agent with task prompt
- Update: Set
passes: trueand write back to file - Repeat: Continue until all tasks complete
The file is updated after each task completion, so progress is persisted even if you interrupt.
Schema Validation
The JSON tracker validates your file and provides helpful error messages:
Common Mistakes
Fix Invalid Files
If your file fails validation:
Limitations
The JSON tracker is simple by design:
| Feature | JSON | Beads |
|---|---|---|
| External CLI | None | Required |
| Git sync | No | Yes |
| Epic hierarchy | No | Yes |
| Team collaboration | Limited | Full |
| Graph analysis | No | With BV |
For larger projects or team collaboration, consider the Beads tracker.
Troubleshooting
"Invalid prd.json schema"
Your file doesn't match the expected schema. Common issues:
- Using
tasksinstead ofuserStories - Using
statusinstead ofpasses - Missing required fields (
id,title,passes)
Run ralph-tui convert --to json to regenerate.
"Task not found"
Ensure the task ID exists in userStories and has passes: false.
"No tasks available"
All tasks either:
- Have
passes: true(completed) - Are blocked by incomplete dependencies
Check your dependsOn arrays.
Next Steps
- Beads Tracker - Git-backed tracking with hierarchy
- create-prd Command - AI-powered PRD creation
- convert Command - Convert PRD to JSON