ralph-status

SKILL.md

Ralph Status Dashboard Skill

Display project status and offer to continue autonomous development if tasks remain.

WORKFLOW

Step 1: Detect Platform

# Detect operating system
if [[ "$OSTYPE" == "msys" ]] || [[ "$OSTYPE" == "win32" ]] || [[ -n "$WINDIR" ]]; then
    PLATFORM="windows"
else
    PLATFORM="unix"
fi

Step 2: Check Prerequisites

Unix:

sqlite3 --version 2>/dev/null || echo "SQLite not found"

Windows:

sqlite3 --version 2>$null
if (-not $?) { Write-Host "SQLite not found" }

If SQLite not available:

SQLite is required. Install it:
- Windows: winget install SQLite.SQLite
- macOS: brew install sqlite3
- Linux: sudo apt install sqlite3

Step 3: Locate Database

# Check for ralph.db
if [[ -f "ralph.db" ]]; then
    echo "Database found"
else
    echo "Database not found"
fi

If not found:

Ralph database not found.
Run /ralph-new to create a new project, or
Run /ralph-enhance to add features to an existing project.

Step 4: Query Database Status

Get task counts:

PLANNED=$(sqlite3 ralph.db "SELECT COUNT(*) FROM tasks WHERE status='planned';")
IN_PROGRESS=$(sqlite3 ralph.db "SELECT COUNT(*) FROM tasks WHERE status='in-progress';")
COMPLETED=$(sqlite3 ralph.db "SELECT COUNT(*) FROM tasks WHERE status='completed';")
FAILED=$(sqlite3 ralph.db "SELECT COUNT(*) FROM tasks WHERE status='failed';")
TOTAL=$((PLANNED + IN_PROGRESS + COMPLETED + FAILED))

Get current work:

sqlite3 ralph.db "SELECT task_id, name, started_at FROM tasks WHERE status='in-progress';"

Get next up:

sqlite3 ralph.db "SELECT task_id, name, priority FROM tasks WHERE status='planned' ORDER BY priority, created_at LIMIT 5;"

Get recent activity:

sqlite3 ralph.db "SELECT datetime(created_at, 'localtime'), task_id, outcome FROM iterations ORDER BY created_at DESC LIMIT 10;"

Get blockers (3+ failures):

sqlite3 ralph.db "SELECT t.task_id, t.name, t.iteration_count FROM tasks t WHERE t.status='failed' OR t.iteration_count >= 3;"

Step 5: Display Dashboard

╔══════════════════════════════════════════════════════════════════╗
║                     RALPH PROJECT STATUS                          ║
║                     [Project Name]                                 ║
╠══════════════════════════════════════════════════════════════════╣

TASK SUMMARY
────────────────────────────────────────────────────────────────────
  ● In Progress:  [N]
  ○ Planned:      [N]
  ✓ Completed:    [N]
  ✗ Failed:       [N]
  ─────────────────
    Total:        [N]

PROGRESS
────────────────────────────────────────────────────────────────────
  [████████████████████░░░░░░░░░░] [XX]% Complete

  Iterations: [N] total | [N] success | [N] failed
  Success Rate: [XX]%

CURRENTLY WORKING ON
────────────────────────────────────────────────────────────────────
  🔄 [US-XXX]: [Task name]
     Started: [timestamp] | Iterations: [N]

NEXT UP
────────────────────────────────────────────────────────────────────
  1. [US-XXX]: [Task name]    Priority: [N]
  2. [US-XXX]: [Task name]    Priority: [N]

BLOCKERS (if any)
────────────────────────────────────────────────────────────────────
  ⚠️  [US-XXX]: [Task name] - Failed [N] times

╚══════════════════════════════════════════════════════════════════╝

Step 6: Offer Options

If there are pending or in-progress tasks, ask:

Tasks remaining: [N] planned, [N] in-progress

Would you like to:
A) Continue development (run Ralph Loop automatically)
B) View web dashboard (Kanban board)
C) Exit (status only)

Use AskUserQuestion tool for this.

Step 7: Handle User Choice

If A) Continue development:

Automatically start the Ralph Loop inline:

WHILE there are pending tasks:
    1. Get next task from database
    2. Mark as in-progress
    3. Implement the task
    4. Run Playwright tests
    5. If pass: mark complete, commit
    6. If fail: log learnings, increment failure count
    7. Continue to next task
END WHILE

When complete, output:

<promise>COMPLETE</promise>

If B) View web dashboard:

Generate dashboard data and start HTTP server:

Unix:

# Generate dashboard JSON
./scripts/ralph-db.sh dashboard

# Start HTTP server (runs in background)
echo "Starting HTTP server on port 8080..."
python3 -m http.server 8080 &
SERVER_PID=$!

echo ""
echo "═══════════════════════════════════════════════════════"
echo "  Dashboard running at: http://localhost:8080/dashboard.html"
echo "  Press Ctrl+C to stop the server"
echo "═══════════════════════════════════════════════════════"

Windows:

# Generate dashboard JSON
.\scripts\ralph-db.ps1 dashboard

# Start HTTP server
Write-Host ""
Write-Host "Starting HTTP server on port 8080..."
Write-Host ""
Write-Host "═══════════════════════════════════════════════════════"
Write-Host "  Dashboard running at: http://localhost:8080/dashboard.html"
Write-Host "  Press Ctrl+C to stop the server"
Write-Host "═══════════════════════════════════════════════════════"
python -m http.server 8080

After starting the server, open http://localhost:8080/dashboard.html in the browser.

If C) Exit: Just show status, no further action.

Step 8: If All Complete

If all tasks are completed:

🎉 ALL TASKS COMPLETE!

Summary:
- Total tasks: [N]
- Completed: [N]
- Failed: [N]
- Success rate: [XX]%

Final verification recommended:
- Run full test suite
- Review git log
- Check for any cleanup needed

Output:

<promise>COMPLETE</promise>

CROSS-PLATFORM COMMANDS

Action Windows (PowerShell) Unix (Bash)
Check file exists Test-Path "file" [[ -f file ]]
Run SQLite sqlite3 ralph.db "query" sqlite3 ralph.db "query"
Run dashboard script .\scripts\ralph-db.ps1 dashboard ./scripts/ralph-db.sh dashboard
Count in variable $count = sqlite3 ... COUNT=$(sqlite3 ...)

QUICK COMMANDS REFERENCE

# View CLI status
./scripts/ralph-db.sh status      # Unix
.\scripts\ralph-db.ps1 status     # Windows

# List all tasks
./scripts/ralph-db.sh list

# List by status
./scripts/ralph-db.sh list planned
./scripts/ralph-db.sh list failed

# View recent activity
./scripts/ralph-db.sh log

# Generate web dashboard
./scripts/ralph-db.sh dashboard

WEB DASHBOARD FEATURES

The dashboard.html provides:

  • 4-column Kanban board: Planned → In Progress → Done → Failed
  • Auto-refresh every 5 seconds
  • Manual refresh button
  • Light/Dark mode toggle
  • Progress bar and statistics
  • Task cards with details
Weekly Installs
4
First Seen
Jan 27, 2026
Installed on
claude-code4
opencode2
gemini-cli2
replit2
antigravity2
github-copilot2