--- description: Revizuiește memoria și propune ștergeri pentru entries nefolositoare argument-hint: [domain|--dry-run] - Opțional: curăță doar un domeniu sau doar raport --- # Curățare și Igienă Memorie Analizează toate entries din memorie și identifică candidați pentru ștergere. **Mod conservator**: Întotdeauna confirmă cu utilizatorul înainte de ștergere. ## Workflow ### Pas 1: Încarcă Toate Fișierele de Memorie Citește toate `claude-learn-*.md` din `.claude/rules/`. Pentru fiecare entry, parsează și extrage: - Titlu - Discovered date - Source (explicit/inferred/repeated) - default: inferred dacă lipsește - Confidence (high/medium/low) - default: medium dacă lipsește - Reinforced count - default: 0 dacă lipsește - Last reinforced date - Tags - Descriere/Problem/Solution - Example (dacă există) ### Pas 2: Calculare Scor pentru Fiecare Entry #### 2.1 Criterii de Ștergere (Scor Negativ) | Criteriu | Puncte | Descriere | |----------|--------|-----------| | Fără reinforcement (0) și > 30 zile | -30 | Entry vechi nefolosit | | Confidence: low | -20 | Inferență slabă la salvare | | Source: inferred (nu explicit/repeated) | -10 | Nu a fost cerut explicit | | Descriere generică (< 20 caractere) | -25 | Ex: "Fix bug", "Update config" | | Fără example code | -15 | Lipsă context practic | | Fără tags sau 1 singur tag | -10 | Greu de căutat/categorizat | | Path specific în titlu | -20 | Ex: "Fix users.ts error" - prea specific | | Menționează un singur fișier în descriere | -15 | One-time fix probabil | | Niciun tag comun cu alte entries | -10 | Entry izolat | #### 2.2 Criterii de Păstrare (Scor Pozitiv) | Criteriu | Puncte | Descriere | |----------|--------|-----------| | Reinforced >= 3 | +50 | Folosit de multe ori - foarte valoros | | Reinforced >= 1 | +20 | Folosit cel puțin o dată | | Source: explicit | +40 | Utilizatorul a cerut explicit salvarea | | Source: repeated | +30 | Corectat de mai multe ori - important | | Confidence: high | +20 | Semnal puternic la salvare | | Tags comune cu 3+ alte entries | +15 | Parte din pattern mai mare | | Example code prezent | +10 | Are context practic | | Discovered recent (< 14 zile) | +10 | Nou, încă de evaluat | #### 2.3 Calculare Scor Final ``` scor_final = suma(criterii_păstrare) + suma(criterii_ștergere) ``` **Praguri de decizie:** - **Scor < -30**: Candidat PUTERNIC pentru ștergere - **Scor -30 la -10**: Candidat POSIBIL pentru ștergere - **Scor -10 la +20**: Neutru (păstrează dar monitorizează) - **Scor > +20**: Păstrează definitiv ### Pas 3: Prezintă Raportul ``` 🧹 Curățare Memorie - Raport 📊 Analizat: {N} entries din {M} domenii 🗑️ CANDIDAȚI PENTRU ȘTERGERE: ━━━ Scor foarte negativ (< -30) ━━━ 1. [backend] "Fix auth bug" Scor: -45 | Discovered: 2024-11-15 | Reinforced: 0 ❌ Descriere generică (< 20 char) ❌ Fără example code ❌ Vechi (> 30 zile) fără reinforcement ❌ Path specific în titlu 2. [frontend] "CSS margin adjustment" Scor: -40 | Discovered: 2024-12-01 | Reinforced: 0 ❌ One-time fix (un singur fișier) ❌ Confidence: low ❌ Fără tags comune ━━━ Scor negativ (-30 la -10) ━━━ 3. [database] "Index creation tip" Scor: -15 | Discovered: 2024-12-20 | Reinforced: 0 ⚠️ Fără example code ⚠️ Source: inferred ━━━ Monitorizare (scor neutru) ━━━ 4. [testing] "Mock setup pattern" Scor: +5 | Discovered: 2025-01-02 | Reinforced: 0 ℹ️ Nou - necesită mai mult timp pentru evaluare ✅ PĂSTRATE DEFINITIV: {X} entries (scor > +20) Acțiuni disponibile: - [delete 1, 2] - Șterge entries specifice - [delete-negative] - Șterge toate cu scor < -30 - [review N] - Vezi detalii complete pentru entry N - [upgrade N] - Rescrie entry N pentru a-l îmbunătăți - [none] - Nu șterge nimic - [export] - Exportă lista pentru review manual ``` ### Pas 4: Confirmare pentru Fiecare Ștergere Pentru fiecare entry selectat, afișează detalii și cere confirmare: ``` 🗑️ Confirmare ștergere (1/{total}): Entry: [backend] "Fix auth bug" ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ **Discovered**: 2024-11-15 (feature: login-page) **Source**: inferred | **Confidence**: low | **Reinforced**: 0 **Problem**: Auth token expired **Solution**: Refresh token **Tags**: auth Motive pentru ștergere: - Descriere prea generică pentru a fi utilă - Niciodată folosit (0 reinforcements în 52 zile) - Fix specific pentru un singur caz [delete] Confirmă ștergerea [keep] Păstrează entry-ul [upgrade] Rescrie pentru a-l face util [skip] Treci la următorul ``` ### Pas 5: Opțiune Upgrade (Rescrie Entry) Dacă utilizatorul alege [upgrade]: ``` 📝 Upgrade Entry: Entry actual: "Fix auth bug" Bazat pe context, propun rescrierea: **Titlu nou**: "JWT Token Refresh on 401 Response" **Descriere nouă**: When API returns 401, check if refresh token is available and attempt automatic refresh before failing. **Source nou**: explicit (rescris manual) **Confidence nouă**: high **Example** îmbunătățit: ```typescript if (response.status === 401 && hasRefreshToken()) { const newToken = await refreshToken(); return retryRequest(config, newToken); } ``` Accept rescrierea? [y/n/edit] ``` Dacă acceptă: - Înlocuiește entry-ul cu versiunea îmbunătățită - Resetează Reinforced la 0 - Actualizează Discovered la data curentă - Setează Source: explicit - Setează Confidence: high ### Pas 6: Execută Ștergerile Pentru fiecare entry confirmat pentru ștergere: 1. Găsește entry-ul în fișierul markdown 2. Elimină complet secțiunea (de la ### până la următorul ---) 3. Actualizează statisticile (decrementează Total Patterns/Gotchas) 4. Actualizează Last Cleanup date **IMPORTANT**: Ștergerea este totală și ireversibilă. ### Pas 7: Raport Final ``` ✅ Curățare completă! Acțiuni efectuate: - 3 entries șterse - 1 entry rescris (upgraded) - 2 entries păstrate (manual) - 5 entries monitorizate (scor neutru) Statistici actualizate: ┌────────────┬──────────┬─────────┬─────────────┐ │ Domain │ Înainte │ După │ Șterse │ ├────────────┼──────────┼─────────┼─────────────┤ │ backend │ 15 │ 13 │ 2 │ │ frontend │ 10 │ 9 │ 1 │ │ database │ 8 │ 8 │ 0 │ ├────────────┼──────────┼─────────┼─────────────┤ │ TOTAL │ 33 │ 30 │ 3 │ └────────────┴──────────┴─────────┴─────────────┘ 💡 Sugestie: Rulează /learn:cleanup lunar pentru mentenanță. ``` --- ## Argument: $ARGUMENTS Dacă argumentul este: - gol → curăță toate domeniile - `backend` (sau alt nume de domeniu) → curăță doar acel domeniu - `--dry-run` → doar raport, fără acțiuni de ștergere - `--stats` → doar statistici sumare, fără detalii --- ## Exemple de Entries Problematice ### Candidați tipici pentru ștergere: ```markdown ### Fix typo **Discovered**: 2024-10-15 (feature: misc) **Problem**: Typo in variable name **Solution**: Fixed typo **Tags**: fix ``` ❌ Titlu generic, descriere vagă, tag singular, vechi ```markdown ### Update users.ts **Discovered**: 2024-11-20 (feature: users) **Problem**: Wrong import **Solution**: Changed import path **Tags**: import ``` ❌ Path în titlu, one-time fix, fără context reutilizabil ### Entries bune (de păstrat): ```markdown ### TypeScript Strict Mode Configuration **Discovered**: 2024-12-01 (feature: project-setup) **Source**: explicit | **Confidence**: high | **Reinforced**: 4 **Trigger**: "ține minte setările pentru strict mode" **Description**: Enable all strict mode options for better type safety... **Example** (`tsconfig.json:5-15`): ```json { "compilerOptions": { "strict": true, "noImplicitAny": true, ... } } ``` **Tags**: typescript, config, strict-mode, project-setup ``` ✅ Titlu descriptiv, reinforced de 4 ori, explicit, exemple, tags multiple