## 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>
206 lines
4.9 KiB
Markdown
206 lines
4.9 KiB
Markdown
---
|
|
description: Analizează conversația și propune lecții de salvat
|
|
argument-hint: [auto|patterns|gotchas] - Detectare automată sau categorie specifică
|
|
---
|
|
|
|
# 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` → backend
|
|
- `tests/**/*.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:
|
|
1. Extrage primele 2 nivele de directoare: `scripts/`, `ansible/`
|
|
2. Extrage extensia: `.sh`, `.yml`
|
|
3. 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}.md` cu 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:
|
|
```markdown
|
|
### {Titlu}
|
|
**Discovered**: {YYYY-MM-DD} (feature: {context})
|
|
**Description**: {descriere}
|
|
|
|
**Example** (`{file}:{lines}`):
|
|
\```{language}
|
|
{code}
|
|
\```
|
|
|
|
**Tags**: {tags}
|
|
|
|
---
|
|
```
|
|
|
|
Format Gotcha:
|
|
```markdown
|
|
### {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:
|
|
- `auto` sau gol → detectează toate categoriile
|
|
- `patterns` → focus doar pe patterns
|
|
- `gotchas` → 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
|
|
```
|