## Domain-based Memory (v2.0.0) - Memory split into domains (backend, frontend, database, testing, deployment, global) - Selective loading via `paths` frontmatter - only relevant memories load - Automatic domain detection from file paths in conversation - Auto-generated glob patterns when creating new domains - Cross-domain analysis in /learn:reflect ## Repository Reorganization - Restructured for multi-plugin marketplace: plugin/ → plugins/learn/ - Marketplace renamed: romfast-tools → romfast-plugins - Repository to be renamed on Gitea: claude-learn → claude-plugins 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
4.9 KiB
Analiză Conversație pentru Lecții
Examinează conversația curentă și identifică insights pentru documentație.
Workflow
Pas 0: Încarcă Configurația Domeniilor
Citește .claude/rules/claude-learn-domains.md pentru lista domeniilor disponibile.
Dacă fișierul nu există, creează-l din template cu domeniile implicite:
- backend, frontend, database, testing, deployment, global
Pas 1: Scanează Conversația
Identifică:
- Fișiere accesate: toate path-urile din Read, Edit, Write, Glob, Grep
- Tool calls cu erori → potențiale gotchas
- Soluții aplicate → potențiale patterns
- Decizii tehnice → posibile reguli noi
Pas 2: Detectează Domeniul
2.1 Extrage Path-uri
Colectează toate path-urile fișierelor din conversație:
src/api/users.ts
src/api/middleware/auth.ts
tests/api/users.test.ts
2.2 Match-uiește cu Domeniile
Pentru fiecare path, verifică contra patterns din config:
src/api/**/*.ts→ backendtests/**/*.test.ts→ testing
2.3 Determină Domeniul Predominant
Alege domeniul cu cele mai multe match-uri. Dacă egalitate → preferă în ordine: backend > frontend > database > testing > deployment > global
2.4 Prezintă Utilizatorului
📁 Domeniu detectat: backend (bazat pe src/api/users.ts, src/api/middleware/auth.ts)
Este corect? [y/n/altul]
Răspunsuri posibile:
- y → continuă cu domeniul detectat
- n → listează toate domeniile disponibile pentru selecție
- altul sau nume-nou → creează domeniu nou (vezi Pas 3)
Pas 3: Creare Domeniu Nou (dacă e cazul)
Când utilizatorul introduce un nume de domeniu care nu există:
3.1 Propune Patterns Automat
Bazat pe path-urile din conversație, generalizează:
scripts/deploy.sh → scripts/**/*.sh
ansible/roles/web/tasks/main.yml → ansible/**/*.yml
Algoritm:
- Extrage primele 2 nivele de directoare:
scripts/,ansible/ - Extrage extensia:
.sh,.yml - Generează glob:
{dir}**/*{ext}
3.2 Prezintă pentru Confirmare
📁 Domeniu nou: "devops"
Bazat pe fișierele din conversație, propun aceste patterns:
scripts/**/*.sh
ansible/**/*.yml
Accept? [y/edit/+more]
3.3 Salvează Domeniul
- Adaugă în
.claude/rules/claude-learn-domains.md - Creează
.claude/rules/claude-learn-{domain}.mdcu frontmatter
Pas 4: Generează Propuneri de Lecții
Ce să cauți:
Patterns (Soluții Repetabile)
- Abordări care au funcționat bine
- Configurații utile descoperite
- Tehnici noi aplicate cu succes
- Workflow-uri eficiente
Gotchas (Capcane de Evitat)
- Erori întâlnite și cum s-au rezolvat
- Confuzii cauzate de documentație
- Comportamente neașteptate
- Anti-patterns descoperite
Format pentru fiecare insight:
**[PATTERN/GOTCHA] Titlu Scurt**
- **Categorie**: patterns | gotchas
- **Descriere**: Ce s-a învățat
- **Context**: În ce situație e relevant
- **Exemplu**: Cod sau pași concreți
- **Tags**: [tag1, tag2, tag3]
Pas 5: Prezintă Utilizatorului
📚 Am identificat {N} lecții din această conversație:
1. [PATTERN] {Titlu}
{Descriere scurtă}
2. [GOTCHA] {Titlu}
{Descriere scurtă}
📁 Domeniu: {domain}
Care dintre acestea vrei să le salvez?
- [1, 2, 3] - Selectează specific
- [all] - Toate
- [none] - Niciuna
- [edit N] - Modifică propunerea N
Pas 6: Salvează în Fișierul Domeniului
Salvează în .claude/rules/claude-learn-{domain}.md
Dacă fișierul nu există, creează-l din template cu frontmatter corect.
Format Pattern:
### {Titlu}
**Discovered**: {YYYY-MM-DD} (feature: {context})
**Description**: {descriere}
**Example** (`{file}:{lines}`):
\```{language}
{code}
\```
**Tags**: {tags}
---
Format Gotcha:
### {Titlu}
**Discovered**: {YYYY-MM-DD} (feature: {context})
**Problem**: {problema}
**Solution**: {soluția}
**Tags**: {tags}
---
Pas 7: Actualizează Statistici
La sfârșitul fișierului domeniului, actualizează:
- Incrementează Total Patterns/Gotchas
- Actualizează Last Session la data curentă
- Incrementează Sessions Recorded
Pas 8: Confirmă
✅ Salvat în claude-learn-{domain}.md:
- {N} patterns adăugate
- {M} gotchas adăugate
Statistici {domain}: {X} patterns, {Y} gotchas total
Argument: $ARGUMENTS
Dacă argumentul este:
autosau gol → detectează toate categoriilepatterns→ focus doar pe patternsgotchas→ focus doar pe gotchas
Compatibilitate Înapoi
Dacă există fișierul vechi claude-learn-memory.md fără frontmatter:
⚠️ Detectat format vechi de memorie (claude-learn-memory.md)
Vrei să migrez memoria existentă către noul sistem cu domenii? [y/n]
- y → rulează /learn:import pe fișierul vechi
- n → continuă fără migrare