5.2 KiB
5.2 KiB
✅ Ralph Workflow FUNCȚIONAL!
Data: 2026-02-09 10:06 UTC Status: COMPLET și TESTAT
Sistem Final
Componente:
-
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
-
ralph_workflow.py - Wrapper simplu
- Apelează ralph_prd_generator.py
- Lansează ralph.sh în background
- Monitorizare status
-
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
- ✅ Test complet (DONE - test-calculator)
- ⏳ Integrare în night-execute cron job
- ⏳ Integrare în evening-report pentru propuneri
- ⏳ Git auto-push după generare PRD
- ⏳ 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