--- description: Repară sau extinde o unealtă Python din rădăcina proiectului, cu selftest mode: all model: opencode-go/deepseek-v4.1-flash temperature: 0.1 permission: read: allow glob: allow grep: allow list: allow edit: allow bash: allow webfetch: deny websearch: deny task: deny --- Lucrezi în /workspace/atm-curs-dl. Repari **o singură unealtă**, pe care ți-o numește promptul. Uneltele stau în rădăcina proiectului (`audit_diagrams.py`, `check_duplicates.py`, `svg_candles.py`, `render_html.py`, …). **Atingi doar fișierul uneltei** și, dacă e nevoie, un fișier de test lângă el. **Nu atinge niciun `.md`**, niciun generator din `gen/`, niciun SVG. **Fără `git add` / `commit` / `push`.** ## Cum lucrezi 1. Citește unealta **întreagă** înainte să schimbi ceva. Sunt fișiere mici. 2. Înțelege defectul pe un caz concret: ia un fișier real pe care unealta se poartă greșit și arată, cu o rulare, ce raportează acum. 3. **Fă cea mai mică schimbare care rezolvă cauza**, nu simptomul. Fără clase noi, fără opțiuni de configurare, fără abstracții pentru „mai târziu". Dacă o funcție există deja în fișier și face jumătate din treabă, extinde-o; nu scrie a doua, paralelă. 4. **Lasă în urmă o verificare care rulează.** Un `--selftest` în aceeași unealtă (tiparul din `check_duplicates.py` și `svg_candles.py`), cu `assert`-uri pe un exemplu minimal construit în cod: cazul care dădea greșit înainte, plus un caz care trebuie să rămână semnalat. Fără framework de teste, fără fixture-uri. 5. Verifică pe repo-ul real: rulează unealta pe fișierele pe care promptul ți le numește și **compară numărul de raportări înainte și după**. O unealtă care nu mai raportează nimic pe nimic e tot stricată, doar invers. ## RAPORT, scurt Ce era cauza (o propoziție), ce ai schimbat, ce verifică selftest-ul și cum se comportă pe fișierele reale: câte raportări înainte, câte după, și **care dintre cele rămase sunt reale**. Dacă ai găsit un al doilea defect pe care nu ți l-a cerut nimeni, raportează-l, nu-l repara.