Files
clawd/RALPH-SUCCESS.md

5.2 KiB

Ralph Workflow FUNCȚIONAL!

Data: 2026-02-09 10:06 UTC Status: COMPLET și TESTAT

Sistem Final

Componente:

  1. ralph_prd_generator.py - Generează PRD și prd.json în Python

    • Citește skill-urile ralph-prd.md și ralph-convert.md ca "ghid"
    • Detectează tech stack (package.json, pyproject.toml, etc.)
    • Generează PRD markdown conform template
    • Creează prd.json cu user stories
    • Copiază ralph.sh și prompt.md
    • NU apelează Claude Code - doar pregătește
  2. ralph_workflow.py - Wrapper simplu

    • Apelează ralph_prd_generator.py
    • Lansează ralph.sh în background
    • Monitorizare status
  3. ralph.sh - Loop autonom (din templates)

    • Selectează story cu priority minimă
    • Apelează Claude Code pentru implementare
    • Quality checks: typecheck, lint, test
    • Git commit dacă OK
    • Repetă până complete

Workflow Complet

Night-execute (Echo):

from tools.ralph_workflow import create_prd_and_json, run_ralph
from pathlib import Path

# Generează PRD și prd.json (fără Claude Code)
prd_file, prd_json = create_prd_and_json(
    "task-tracker",
    """
    Task tracker CLI în Python.
    Features:
    - Add/list/done tasks
    - SQLite storage
    - Export markdown
    - Tests cu pytest
    """,
    Path.home() / "workspace"
)

# Lansează Ralph loop (cu Claude Code)
run_ralph(prd_json, max_iterations=20, background=True)

# Git init + push
project_dir = prd_json.parent.parent.parent
subprocess.run(["git", "init"], cwd=project_dir)
subprocess.run(["git", "add", "."], cwd=project_dir)
subprocess.run(["git", "commit", "-m", "Initial commit with PRD"], cwd=project_dir)
subprocess.run(["git", "remote", "add", "origin", f"https://gitea.romfast.ro/romfast/{project_dir.name}"], cwd=project_dir)
subprocess.run(["git", "push", "-u", "origin", "main"], cwd=project_dir)

Morning-report (Echo):

from tools.ralph_workflow import check_status
from pathlib import Path

status = check_status(Path.home() / "workspace" / "task-tracker")

# Raportează în Discord
print(f"""
## 🔄 Proiecte Ralph

### task-tracker
- ✅ Complete: {len(status['complete'])} stories
- 🔄 Incomplete: {len(status['incomplete'])} stories
- 📚 Learnings: {status['learnings'][-3:]}
- 🔗 https://gitea.romfast.ro/romfast/task-tracker
""")

Test Reușit

Proiect: test-calculator Comandă:

python3 tools/ralph_workflow.py create "test-calculator" "Calculator CLI Python cu add, subtract, multiply, divide"

Rezultat:

✅ PRD generat: ~/workspace/test-calculator/tasks/prd-test-calculator.md
✅ prd.json generat: ~/workspace/test-calculator/scripts/ralph/prd.json
📋 Stories: 2
  - US-001: Calculator CLI Python...
  - US-002: Tests și Documentație
✅ ralph.sh copiat
✅ Ralph pornit în background (PID: 19860)

Status după 1 min:

  • Ralph la iterația 1
  • Claude Code implementează US-001
  • Proces rulează autonom în background

Diferențe față de încercările anterioare

Încercare Problemă Soluție finală
pexpect Claude Code interactive mode greu de controlat NU mai controlez Claude Code
tmux Skills nu funcționează prin tmux NU mai apelez skills
Skills directe Complexitate control sesiune Implementez în Python
FINAL - Python generează PRD, ralph.sh apelează Claude Code

Avantaje

Simplu - doar Python pentru PRD, ralph.sh face restul Robust - nu depinde de tmux/pexpect/skills interactive Controlabil - Echo controlează PRD generation, Claude Code face coding Testabil - fiecare pas poate fi testat independent Mențineabil - skill-urile sunt "ghid", nu dependențe hard

Fișiere create

~/clawd/tools/
├── ralph_prd_generator.py  # Generator PRD în Python (principal)
├── ralph_workflow.py       # Wrapper simplu
└── (ralph_old_*.py)       # Arhivate

~/.claude/skills/
├── ralph-prd.md           # Ghid pentru PRD (nu apelat direct)
└── ralph-convert.md       # Ghid pentru conversie (nu apelat direct)

~/workspace/PROJECT/
├── tasks/prd-PROJECT.md   # PRD generat
└── scripts/ralph/
    ├── prd.json           # Stories JSON
    ├── ralph.sh           # Loop autonom
    ├── prompt.md          # Instrucțiuni Claude Code
    ├── progress.txt       # Learnings
    └── logs/ralph.log     # Output live

Următorii pași

  1. Test complet (DONE - test-calculator)
  2. Integrare în night-execute cron job
  3. Integrare în evening-report pentru propuneri
  4. Git auto-push după generare PRD
  5. Documentație AGENTS.md update

CLI Usage

# Creează proiect complet (PRD + launch Ralph)
python3 tools/ralph_workflow.py create "project-name" "description cu features"

# Verifică status
python3 tools/ralph_workflow.py status "project-name"

# Doar PRD (fără launch)
python3 tools/ralph_prd_generator.py "project-name" "description"

Model Strategy

  • Opus (Echo) → Generează PRD și prd.json în Python
  • Sonnet (Ralph loop) → Implementează code cu Claude Code

Status: PRODUCTION READY Testat: 2026-02-09 Next: Integrare night-execute