Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Run ralph-tui task loops for automated PRD execution. Covers headless mode, PRD preparation, agent selection (opencode/claude), session management, and troubleshooting. Use when asked to "run ralph-tui", "execute PRD tasks", or "start a ralph session".
.claude/skills/majiayu000-ralph-tui/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-14 | ✗→✓ | ▲ Improved | 7% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 121% | 0% |
| case-03 | ✗→✓ | ▲ Improved | -9% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 25% | 0% |
| case-06 | ✗→✓ | ▲ Improved | -4% | 0% |
Break down complex work into tasks, then let AI execute them autonomously.
Why this matters: Instead of manually prompting for each step, define the work upfront as a PRD, then let ralph-tui orchestrate execution. It selects tasks, builds prompts with context, executes your AI agent, and advances automatically.
/ralph-tui # Show available commands
/ralph-tui run # Run autonomous loop on current prd.json
/ralph-tui create # Create a new PRD with AI assistance
/ralph-tui status # Check execution statusShow the ralph-tui command reference:
Ralph TUI - AI Agent Loop Orchestrator
Commands:
jfl ralph run --prd ./tasks/file.json Run autonomous task loop
jfl ralph create-prd --chat Create PRD with AI
jfl ralph setup Initialize in project
jfl ralph status Show session status
jfl ralph resume Resume paused session
Quick Start:
1. Create PRD: jfl ralph create-prd --chat
2. Run loop: jfl ralph run --prd ./tasks/my-feature.json
Keyboard (in TUI):
s = start, p = pause, q = quit
j/k = navigate, Enter = detailsbashls ./tasks/*.json 2>/dev/null || ls ./prd.json 2>/dev/null
Found PRD files:
1. tasks/admin-dashboard-prd.json (15 stories)
2. tasks/auth-migration.json (8 stories)
Which PRD to execute? (or 'new' to create one)bashjfl ralph run --prd <selected-file>
What do you want to build or accomplish?
(Describe the feature, fix, or task - I'll break it into stories)bashjfl ralph create-prd --chat --output ./tasks/
PRD created: ./tasks/my-feature.json
Want to start autonomous execution?
jfl ralph run --prd ./tasks/my-feature.jsonCheck ralph-tui status:
bashjfl ralph status
Show current session info, completed tasks, remaining work.
Ralph TUI uses JSON PRDs with this structure:
json{ "name": "Feature Name", "description": "What we're building", "quality_gates": ["bun run typecheck", "bun run lint"], "stories": [ { "id": "US-001", "title": "Story title", "priority": 1, "status": "pending", "description": "What to implement", "acceptance_criteria": ["Criterion 1", "Criterion 2"], "files": ["path/to/file.ts"], "dependencies": ["US-000"], "context": "Additional context for the agent" } ] }
| Field | Required | Description | |-------|----------|-------------| | id | Yes | Unique ID (US-001 format) | | title | Yes | Short description | | priority | Yes | 1 = highest, higher = lower priority | | status | Yes | pending, in_progress, completed, blocked | | description | Yes | What to implement | | acceptance_criteria | Yes | List of requirements | | files | No | Files likely to be modified | | dependencies | No | Story IDs that must complete first | | context | No | Extra info for the agent |
Each story should be completable in one agent session (typically <30 min of AI work).
Bad: "Implement user authentication" Good: "Add login form component", "Create auth API route", "Add session middleware"
Make criteria specific and testable.
Bad: "Should work well" Good: "Returns 401 for invalid credentials", "Sets httpOnly cookie on success"
Put foundational work first. Use dependencies field when order matters.
Add relevant info the agent needs but won't find in the codebase.
json{ "context": "We're using Drizzle ORM. The users table already has an isAdmin column." }
<promise>COMPLETE</promise> tokenRalph TUI is bundled with JFL CLI:
bash# Install JFL (includes ralph-tui) npm install -g jfl # Use ralph via jfl jfl ralph run --prd ./tasks/feature.json # Or directly ralph-tui run --prd ./tasks/feature.json
PRDs are typically stored in ./tasks/ directory within your GTM workspace.
/spec skill to refine your PRD through adversarial review before executionp to pause and review changes before continuingFull documentation: https://ralph-tui.com/docs
Installed docs: knowledge/RALPH_TUI_DOCS.txt
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-14 | fail→pass | 17,162 | 2,240 | -87% | 1 | 1 | 0% | 1,696 | 1,810 | +7% | 0 | 0 | — |
case-01 | fail→fail | 2,383 | 7,909 | +232% | 1 | 1 | 0% | 347 | 1,847 | +432% | 0 | 0 | — |
case-02 | fail→pass | 9,440 | 4,740 | -50% | 1 | 1 | 0% | 1,032 | 2,282 | +121% | 0 | 0 | — |
case-03 | fail→pass | 15,930 | 2,907 | -82% | 1 | 1 | 0% | 2,283 | 2,076 | -9% | 0 | 0 | — |
case-04 | fail→pass | 20,321 | 14,850 | -27% | 1 | 1 | 0% | 2,700 | 3,370 | +25% | 0 | 0 | — |
case-05 | fail→fail | 13,140 | 8,008 | -39% | 1 | 1 | 0% | 1,448 | 2,022 | +40% | 0 | 0 | — |
case-06 | fail→pass | 18,822 | 3,438 | -82% | 1 | 1 | 0% | 2,118 | 2,039 | -4% | 0 | 0 | — |
case-07 | fail→pass | 9,551 | 4,158 | -56% | 1 | 1 | 0% | 1,500 | 2,248 | +50% | 0 | 0 | — |
case-08 | fail→pass | 22,612 | 5,358 | -76% | 1 | 1 | 0% | 2,245 | 2,416 | +8% | 0 | 0 | — |
case-15 | fail→pass | 10,509 | 7,610 | -28% | 1 | 1 | 0% | 1,734 | 1,880 | +8% | 0 | 0 | — |
case-09 | fail→pass | 27,287 | 8,033 | -71% | 1 | 1 | 0% | 1,707 | 2,066 | +21% | 0 | 0 | — |
case-10 | pass→pass | 14,875 | 7,962 | -46% | 1 | 1 | 0% | 1,526 | 1,947 | +28% | 0 | 0 | — |
case-11 | fail→pass | 9,836 | 7,794 | -21% | 1 | 1 | 0% | 1,390 | 1,962 | +41% | 0 | 0 | — |
case-12 | fail→pass | 50,660 | 4,224 | -92% | 1 | 1 | 0% | 1,697 | 1,758 | +4% | 0 | 0 | — |
case-13 | pass→pass | 10,088 | 3,958 | -61% | 1 | 1 | 0% | 1,561 | 1,989 | +27% | 0 | 0 | — |
case-16 | fail→pass | 7,823 | 1,676 | -79% | 1 | 1 | 0% | 1,258 | 1,744 | +39% | 0 | 0 | — |
case-17 | fail→pass | 12,917 | 2,712 | -79% | 1 | 1 | 0% | 2,178 | 1,935 | -11% | 0 | 0 | — |
case-18 | pass→pass | 12,862 | 8,536 | -34% | 1 | 1 | 0% | 2,058 | 2,151 | +5% | 0 | 0 | — |
case-19 | pass→pass | 20,290 | 12,369 | -39% | 1 | 1 | 0% | 2,604 | 3,602 | +38% | 0 | 0 | — |
case-20 | pass→pass | 22,653 | 17,250 | -24% | 1 | 1 | 0% | 3,534 | 3,798 | +7% | 0 | 0 | — |
case-21 | pass→pass | 13,043 | 16,471 | +26% | 1 | 1 | 0% | 2,339 | 3,724 | +59% | 0 | 0 | — |
case-22 | fail→pass | 19,121 | 12,490 | -35% | 1 | 1 | 0% | 2,275 | 2,766 | +22% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +64 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.