Update memory, root, tools (+2 ~2)

This commit is contained in:
Echo
2026-02-09 09:06:09 +00:00
parent cf397efe6c
commit ccd9362d1a
4 changed files with 664 additions and 28 deletions

View File

@@ -0,0 +1,281 @@
# Ralph Workflow - Sistem Complet
**Locație:** moltbot (LXC 110) - Claude Code instalat local
**Workspace:** `~/workspace/`
**Helper:** `~/clawd/tools/ralph_workflow.py`
## Componente
### 1. Skill Ralph (Claude Code)
**Locație:** `~/.claude/skills/ralph/`
**Comenzi disponibile:**
- `/ralph:prd` - Generează PRD structurat cu întrebări adaptive
- `/ralph:convert` - Convertește PRD markdown în prd.json + configurare proiect
**Features:**
- Detecție automată context (proiect nou vs feature existent)
- Întrebări adaptive (10 pentru nou, 5-7 pentru feature)
- Web research opțional pentru best practices
- Generare `.claude/settings.json` cu allow-list per tech stack
- Configurare automată scripts/ralph/
### 2. Ralph Loop (ralph.sh)
**Locație:** Copiat automat în `PROJECT/scripts/ralph/ralph.sh`
**Funcționare:**
1. Citește prd.json
2. Selectează story cu priority minimă + passes=false
3. Rulează `claude` pentru implementare
4. Quality checks: typecheck, lint, test
5. Git commit dacă OK → passes: true
6. Update progress.txt cu learnings
7. Repetă până toate complete sau max iterations
### 3. Helper Python
**Locație:** `~/clawd/tools/ralph_workflow.py`
**Funcții:**
- `create_prd()` - Apelează Claude Code cu /ralph:prd
- `convert_prd()` - Apelează Claude Code cu /ralph:convert
- `run_ralph()` - Lansează ralph.sh în background/foreground
- `check_status()` - Verifică progres (stories complete/incomplete, learnings)
## Workflow Complet (pentru Echo)
### Night Execute (23:00)
**Pas 1: Planning cu Opus (Echo)**
```python
from tools.ralph_workflow import create_prd, convert_prd, run_ralph
# Creează PRD
prd_file = create_prd(
project_name="task-tracker", # kebab-case
description="""
Vreau un task tracker simplu pentru CLI.
Features:
- Add/list/done tasks
- SQLite storage
- Export markdown
"""
)
# Convertește în prd.json
prd_json = convert_prd(prd_file)
# Lansează Ralph în background
run_ralph(prd_json, max_iterations=20, background=True)
```
**Pas 2: Git init + push**
```bash
cd ~/workspace/task-tracker
git init
git remote add origin https://gitea.romfast.ro/romfast/task-tracker
git add .
git commit -m "Initial commit with PRD and Ralph config"
git push -u origin main
```
### Morning Report (08:30)
**Verifică status:**
```python
from tools.ralph_workflow import check_status
from pathlib import Path
status = check_status(Path.home() / "workspace" / "task-tracker")
print(f"✅ Complete: {len(status['complete'])}")
print(f"🔄 Incomplete: {len(status['incomplete'])}")
print(f"📚 Learnings: {status['learnings'][-3:]}")
```
**Raportează în Discord:**
```markdown
## 🔄 Proiecte Ralph
### task-tracker
- Status: ✅ 5/8 stories complete
- Progress:
- ✅ US-001: Database schema + migrations
- ✅ US-002: Add task CLI command
- ✅ US-003: List tasks with filters
- ✅ US-004: Mark task as done
- ✅ US-005: Export to markdown
- 🔄 US-006: Tests for all commands (în progres)
- ⚠️ US-007: README documentation (blocat)
- 🔄 US-008: CI/CD setup
📚 Learnings:
- SQLite migrations best practices
- Click CLI argument parsing
- Pytest fixtures for DB testing
🔗 Link: https://gitea.romfast.ro/romfast/task-tracker
```
## Structură Proiect
După workflow complet:
```
~/workspace/PROJECT-NAME/
├── tasks/
│ └── prd-PROJECT-NAME.md # PRD markdown (generat de /ralph:prd)
├── scripts/
│ └── ralph/
│ ├── prd.json # Stories pentru Ralph (generat de /ralph:convert)
│ ├── progress.txt # Learnings per iterație (generat de ralph.sh)
│ ├── ralph.sh # Loop autonom (copiat de /ralph:convert)
│ ├── prompt.md # Instrucțiuni per iterație (copiat)
│ ├── .ralph.pid # PID proces Ralph (pentru monitoring)
│ ├── logs/
│ │ └── ralph.log # Output Ralph loop
│ ├── archive/ # Arhive rulări anterioare
│ └── screenshots/ # Screenshots verificări UI (dacă aplicabil)
├── src/ # Cod implementat de Ralph
├── .claude/
│ └── settings.json # Permissions allow-list (generat de /ralph:convert)
└── .git/ # Git repo → gitea
```
## Comenzi Rapide
### CLI Direct (pentru debug)
```bash
# Verifică skill-uri disponibile
claude skills list | grep ralph
# Test /ralph:prd (manual)
cd ~/workspace/test-project
claude exec "/ralph:prd
Vreau să creez un calculator simplu."
# Test /ralph:convert (manual)
claude exec "/ralph:convert
Convertește PRD din tasks/prd-calculator.md"
# Rulează Ralph manual
cd ~/workspace/test-project
./scripts/ralph/ralph.sh 10 # max 10 iterații
```
### Python Helper (pentru automatizare)
```bash
# Creează proiect complet (PRD + conversie + launch)
python3 ~/clawd/tools/ralph_workflow.py create "task-tracker" "Task tracker simplu pentru CLI"
# Verifică status
python3 ~/clawd/tools/ralph_workflow.py status "task-tracker"
```
## Monitorizare
### În timpul execuției
```bash
# Verifică dacă Ralph rulează
ps aux | grep ralph.sh
# Tail logs live
tail -f ~/workspace/PROJECT/scripts/ralph/logs/ralph.log
# Verifică stories complete
jq '.userStories[] | select(.passes == true) | {id, title}' \
~/workspace/PROJECT/scripts/ralph/prd.json
```
### După execuție
```bash
# Stories incomplete (priority sort)
jq '.userStories[] | select(.passes != true) | {id, title, priority}' \
~/workspace/PROJECT/scripts/ralph/prd.json | jq -s 'sort_by(.priority)'
# Ultimele learnings
tail -20 ~/workspace/PROJECT/scripts/ralph/progress.txt
# Git commits de la Ralph
cd ~/workspace/PROJECT
git log --oneline --since="last night"
```
## Troubleshooting
### Ralph nu pornește
```bash
# Verifică Claude Code instalat
claude --version
# Verifică skill ralph disponibil
ls -la ~/.claude/skills/ralph/
# Verifică prd.json valid
jq '.' ~/workspace/PROJECT/scripts/ralph/prd.json
```
### Ralph blochează pe o story
```bash
# Verifică logs
tail -50 ~/workspace/PROJECT/scripts/ralph/logs/ralph.log
# Marchează manual story ca done (pentru a continua)
jq '.userStories[2].passes = true' \
~/workspace/PROJECT/scripts/ralph/prd.json > tmp && mv tmp prd.json
```
### Oprește Ralph
```bash
# Kill process
cat ~/workspace/PROJECT/scripts/ralph/.ralph.pid | xargs kill
# Sau kill all
pkill -f ralph.sh
```
## Model Strategy (OBLIGATORIU)
- **Opus** → Planning, PRD, stories (Echo în night-execute)
- Apelează `create_prd()` și `convert_prd()`
- **Sonnet** → Coding, debugging, implementare (Ralph loop)
- Ralph folosește Claude Code cu Sonnet implicit
## Integration cu AGENTS.md
**Pentru night-execute job:**
```python
# În night-execute cron job
import sys
sys.path.append('/home/moltbot/clawd')
from tools.ralph_workflow import create_prd, convert_prd, run_ralph
from pathlib import Path
# Citește approved-tasks.md pentru proiecte aprobate
# ...
# Pentru fiecare proiect aprobat
for project in approved_projects:
prd = create_prd(project['name'], project['description'])
prd_json = convert_prd(prd)
run_ralph(prd_json, max_iterations=20, background=True)
```
---
**Updated:** 2026-02-09
**Version:** 2.0 (local pe moltbot, fără SSH)