Claude-skill-registry auto-ralph
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/auto-ralph" ~/.claude/skills/majiayu000-claude-skill-registry-auto-ralph && rm -rf "$T"
skills/data/auto-ralph/SKILL.mdauto-ralph
Skill proactiv care detectează automat task-uri potrivite pentru Ralph Loop și le execută.
Prefix de Activare (OBLIGATORIU)
Când skill-ul activează, PRIMUL lucru afișat trebuie să fie:
(AUTONALYK) ═══════════════════════════════════ Task detectat: [tip task] Scor: [X]/4 → [Ralph mode / Normal mode] ═══════════════════════════════════════════════
Exemple:
(AUTONALYK) ═══════════════════════════════════ Task detectat: bug fix Scor: 4/4 → Ralph mode ═══════════════════════════════════════════════
(AUTONALYK) ═══════════════════════════════════ Task detectat: întrebare Scor: 1/4 → Normal mode ═══════════════════════════════════════════════
De ce prefix:
- Utilizatorul știe imediat că skill-ul a activat
- Transparență totală despre decizia scoring
- Debugging ușor dacă ceva merge prost
Faza 0: Verificare Loop Activ (OBLIGATORIU - P0 FIX)
ÎNAINTE de orice scoring, verifică dacă Ralph Loop e deja activ:
if [[ -f ".claude/ralph-loop.local.md" ]]; then # STOP - nu porni alt loop! fi
Dacă loop activ:
(AUTONALYK) ═══════════════════════════════════ ⚠️ Ralph Loop DEJA ACTIV! Iterația curentă: [citește din fișier] Opțiuni: 1. Așteaptă să termine 2. /cancel-ralph pentru a opri 3. Adaugă cerința la loop-ul curent (manual) ═══════════════════════════════════════════════
NU încerca să pornești al doilea loop - va corupe starea!
Workflow Automat
USER INPUT → CHECK ACTIVE LOOP → SCORING → (>= 3?) → CONTEXT → PROMPT → CONFIRM → EXECUTE ↓ ↓ (loop activ?) (< 3?) → RĂSPUNS NORMAL ↓ AVERTIZARE + STOP
ZERO întrebări până la confirmarea finală.
Faza 1: Scoring Automat
Calculează scor 0-4 pentru fiecare task:
| Criteriu | +1 punct dacă |
|---|---|
| Criterii clare | Keywords pozitive detectate (vezi tabel mai jos) |
| Iterație utilă | Bug fix, feature, refactor (nu întrebări) |
| Scop definit | Fișiere/funcții specificate |
| Verificabil | Teste disponibile sau eroare concretă |
Keywords Multilingve (P1 FIX)
IMPORTANT: Recunoaște keywords în TOATE limbile:
| Limba | Keywords Pozitive (+1) | Keywords Negative (0) |
|---|---|---|
| EN | fix, repair, add, implement, create, build, test, refactor | explain, help, what, why, how, understand |
| RO | repară, fixează, adaugă, implementează, creează, fă, fă-mi, testează, refactorizează | explică, ce face, cum, de ce, ajută-mă |
| RU | исправь, добавь, создай, сделай, протестируй, рефактор | объясни, что, как, почему, помоги |
Exemple:
- "fă-mi un API" → "fă-mi" = RO pentru "make me" → +1 criteriu clar
- "repară bug-ul" → "repară" = RO pentru "fix" → +1 criteriu clar
- "ce face funcția?" → "ce face" = întrebare → 0 puncte
Decizie:
- Scor >= 3 → AUTO-RALPH
- Scor < 3 → Răspuns normal Claude
Faza 1.5: Pre-Analiză cu Explore Agent (OPȚIONAL)
Când să folosești Explore ÎNAINTE de Ralph Loop:
| Scor | Task Type | Explore? | Motiv |
|---|---|---|---|
| 4/4 | Bug fix cu stack trace clar | NU | Direct Ralph - context evident |
| 4/4 | Refactor >500 linii | DA | Mapează dependențe înainte |
| 3/4 | Feature în cod necunoscut | DA | Înțelege arhitectura |
| 3/4 | Test funcție izolată | NU | Scop mic, direct Ralph |
Regula simplă: Explore când ai nevoie să înțelegi structura ÎNAINTE de a modifica.
Template-uri Explore
Bug Fix Explore:
Task(subagent_type="Explore", prompt="Investigate [ERROR]: 1) Find source file, 2) Map call chain, 3) Identify related tests, 4) Find similar patterns")
Feature Explore:
Task(subagent_type="Explore", prompt="Plan feature [NAME]: 1) Find similar implementations, 2) Map integration points, 3) Identify test patterns, 4) Check config files")
Refactor Explore:
Task(subagent_type="Explore", prompt="Analyze [TARGET]: 1) Find all usages, 2) Map dependencies, 3) Assess test coverage, 4) Identify risk areas")
Vezi
references/explore-patterns.md pentru template-uri complete și exemple.
Faza 2: Detecție Context
Rulează
${CLAUDE_SKILL_DIR}/scripts/detect-context.sh [directory] pentru:
- Git status (fișiere modificate)
- Framework test disponibil (sau
)NO_TESTS_DETECTED - Erori recente (npm, yarn, pytest, generic logs)
- Structură proiect
- Docker status (P2 FIX) - docker-compose, containere, logs
Notă: Scriptul verifică automat dacă
jq e instalat și afișează instrucțiuni dacă lipsește.
Faza 3: Generare Prompt
Selectează template din
references/prompt-patterns.md:
- Bug fix → Pattern bug-fix
- Feature → Pattern feature
- Test → Pattern test
- Refactor → Pattern refactor
- Generic → Template general
Template include:
- Task-ul original (în limba userului)
- Context detectat
- Criterii de succes auto-inferate
- Promise:
<promise>GATA</promise> - Reminder:
pentru anulare/cancel-ralph
Faza 4: Confirmare (SINGURA ÎNTREBARE)
Prezintă prompt-ul generat și întreabă:
Prompt generat pentru Ralph Loop: ──────────────────────────────── [preview prompt] ──────────────────────────────── Execut? (max 25 iterații) [Da - Recomandat] [Modifică prompt] [Nu]
Faza 5: Execuție
Dacă "Da":
/ralph-loop "<prompt>" --max-iterations 25 --completion-promise "GATA"
Reguli Limbă
- Output: MEREU Română
- Input: Acceptă orice (ro/en/ru/mixed) fără întrebări
- Promise: "GATA" (standard)
Exemplu:
User: "fix the auth bug, нужно чтобы работал login" (AUTONALYK) ═══════════════════════════════════ Task detectat: bug fix Scor: 4/4 → Ralph mode ═══════════════════════════════════════════════ Generez prompt...
Triggers Explicite (override scoring)
Activare forțată Ralph:
- "ralph this", "auto ralph", "loop it"
- "iterate", "keep trying", "until done"
Dezactivare forțată:
- "just answer", "don't loop"
- "explain first", "one time"
Resurse
- Reguli complete scoringreferences/detection-rules.md
- Template-uri promptreferences/prompt-patterns.md
- Script detecție contextscripts/detect-context.sh
- Exemple prompt-uri generateexamples/
Exemple Rapide
Task potrivit (scor 4)
User: "fix the failing tests in auth module" (AUTONALYK) ═══════════════════════════════════ Task detectat: bug fix (teste) Scor: 4/4 → Ralph mode ═══════════════════════════════════════════════ Detectez context... [git, teste, erori] Generez prompt... Prompt generat pentru Ralph Loop: ──────────────────────────────── [preview] ──────────────────────────────── Execut? (max 25 iterații) [Da/Modifică/Nu]
Task nepotrivit (scor 1)
User: "ce face funcția asta?" (AUTONALYK) ═══════════════════════════════════ Task detectat: întrebare/explicație Scor: 1/4 → Normal mode ═══════════════════════════════════════════════ [Răspuns normal Claude, fără Ralph]
Safety
- Max iterations - Default 25, MEREU setat
- Confirmare - Un click "Da" înainte de execuție
- Escape -
menționat în fiecare prompt/cancel-ralph - Promise onestă - Instrucțiuni clare să NU mintă
Anti-Patterns (CE NU FACE)
- NU întreabă despre limbă
- NU întreabă "quick sau thorough"
- NU cere clarificări inutile
- NU execută fără confirmare finală
- NU ignoră scor < 3 (răspunde normal)
Settings Persistence
Auto-ralph citește configurația din
~/.claude/auto-ralph.local.md:
Structură Settings File
--- max_iterations: 25 score_threshold: 3 skip_explore_for_score: 4 default_language: ro auto_execute: false docker_analysis: true --- # Notes Any markdown notes here.
Parametri Disponibili
| Parametru | Default | Descriere |
|---|---|---|
| 25 | Iterații maxime Ralph Loop |
| 3 | Scor minim pentru Ralph mode |
| 4 | Scor la care se sare peste Explore |
| ro | Limba output (ro/en/ru) |
| false | true = fără confirmare finală |
| true | Include Docker în context detection |
Override
Parametrii expliciți din comandă au prioritate peste settings:
User: "ralph this cu max 50 iterații" → Override max_iterations=50, ignoră settings
Citire Settings
Script-ul
detect-context.sh include funcție read_settings():
read_settings() { local sf="$HOME/.claude/auto-ralph.local.md" if [[ -f "$sf" ]]; then sed -n '/^---$/,/^---$/p' "$sf" | grep -v '^---$' fi }