feat(learn): Minimalist memory format v3.0 - 60% size reduction
BREAKING CHANGE: New compact entry format
- Header: `## {P|G}: {Title}` (P=Pattern, G=Gotcha)
- Metadata: `@YYYY-MM-DD #tag1 #tag2 | source:confidence[:reinforced]`
- Max 3 inline tags, no separators, no statistics section
Removed verbose fields: Discovered, Source, Confidence, Trigger
Statistics now calculated dynamically by /learn:status
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -2,234 +2,130 @@
|
||||
paths: ".claude/rules/claude-learn-*.md"
|
||||
---
|
||||
|
||||
# Claude Learn Memory Format
|
||||
# Claude Learn Memory Format v3.0
|
||||
|
||||
Acest fișier definește formatul pentru fișierele de memorie per domeniu.
|
||||
Format minimalist pentru fișierele de memorie.
|
||||
|
||||
## Arhitectura Fișierelor
|
||||
|
||||
```
|
||||
.claude/rules/
|
||||
├── claude-learn-domains.md # Configurația domeniilor
|
||||
├── claude-learn-backend.md # Memorie backend (paths: src/api/**)
|
||||
├── claude-learn-frontend.md # Memorie frontend (paths: src/components/**)
|
||||
├── claude-learn-database.md # Memorie database (paths: src/db/**)
|
||||
├── claude-learn-testing.md # Memorie testing (paths: **/*.test.ts)
|
||||
├── claude-learn-deployment.md # Memorie deployment (paths: Dockerfile, *.yml)
|
||||
└── claude-learn-global.md # Memorie globală (fără paths - mereu încărcat)
|
||||
├── claude-learn-backend.md # Memorie backend
|
||||
├── claude-learn-frontend.md # Memorie frontend
|
||||
├── claude-learn-database.md # Memorie database
|
||||
├── claude-learn-testing.md # Memorie testing
|
||||
├── claude-learn-deployment.md # Memorie deployment
|
||||
└── claude-learn-global.md # Memorie globală (mereu încărcat)
|
||||
```
|
||||
|
||||
## Template Fișier Domeniu
|
||||
|
||||
```markdown
|
||||
---
|
||||
paths: src/api/**/*.ts, src/server/**/*.ts
|
||||
---
|
||||
# Claude Learn: {domain}
|
||||
<!-- paths: src/api/**/*.ts, src/server/**/*.ts -->
|
||||
|
||||
# Claude Learn Memory: backend
|
||||
|
||||
Patterns și Gotchas pentru domeniul **backend**.
|
||||
|
||||
---
|
||||
|
||||
## Patterns
|
||||
|
||||
### {Titlu Descriptiv}
|
||||
**Discovered**: {YYYY-MM-DD} (feature: {context-scurt})
|
||||
**Source**: {source} | **Confidence**: {confidence} | **Reinforced**: 0
|
||||
**Trigger**: "{fraza care a declanșat salvarea}"
|
||||
**Description**: {Descriere clară a pattern-ului și când să-l folosești}
|
||||
|
||||
**Example** (`{file}:{lines}`):
|
||||
\```{language}
|
||||
{cod exemplu}
|
||||
\```
|
||||
|
||||
**Tags**: {tag1}, {tag2}, {tag3}
|
||||
|
||||
---
|
||||
|
||||
## Gotchas
|
||||
|
||||
### {Titlu Descriptiv}
|
||||
**Discovered**: {YYYY-MM-DD} (feature: {context-scurt})
|
||||
**Source**: {source} | **Confidence**: {confidence} | **Reinforced**: 0
|
||||
**Trigger**: "{fraza care a declanșat salvarea}"
|
||||
**Problem**: {Ce problemă a apărut}
|
||||
**Solution**: {Cum s-a rezolvat}
|
||||
|
||||
**Tags**: {tag1}, {tag2}, {tag3}
|
||||
|
||||
---
|
||||
|
||||
## Domain Statistics
|
||||
|
||||
- **Total Patterns**: 0
|
||||
- **Total Gotchas**: 0
|
||||
- **Total Reinforcements**: 0
|
||||
- **Last Session**: -
|
||||
- **Sessions Recorded**: 0
|
||||
- **Last Cleanup**: -
|
||||
## P: Titlu pattern concis
|
||||
@2026-01-06 #tag1 #tag2 | explicit:high
|
||||
Descriere 1-2 propoziții.
|
||||
```lang
|
||||
cod opțional
|
||||
```
|
||||
|
||||
## Template Fișier Global
|
||||
|
||||
Fișierul `claude-learn-global.md` NU are frontmatter `paths:` și se încarcă întotdeauna:
|
||||
|
||||
```markdown
|
||||
# Claude Learn Memory: global
|
||||
|
||||
Patterns și Gotchas universale, aplicabile tuturor domeniilor.
|
||||
|
||||
---
|
||||
|
||||
## Patterns
|
||||
|
||||
...
|
||||
|
||||
## Gotchas
|
||||
|
||||
...
|
||||
|
||||
## Domain Statistics
|
||||
|
||||
...
|
||||
## G: Titlu gotcha concis
|
||||
@2026-01-06 #tag1 #tag2 | inferred:med
|
||||
**P**: Problema scurtă
|
||||
**S**: Soluția scurtă
|
||||
```
|
||||
|
||||
---
|
||||
## Format Entry
|
||||
|
||||
## Câmpuri Metadata (v2.1.0)
|
||||
### Header
|
||||
```
|
||||
## {P|G}: {Titlu max 60 char}
|
||||
```
|
||||
- `P` = Pattern (soluție repetabilă)
|
||||
- `G` = Gotcha (capcană de evitat)
|
||||
|
||||
Fiecare entry include acum metadata pentru tracking și curățare.
|
||||
|
||||
### Source
|
||||
|
||||
Cum a fost capturat entry-ul:
|
||||
|
||||
| Valoare | Descriere | Scor Cleanup |
|
||||
|---------|-----------|--------------|
|
||||
| `explicit` | Utilizatorul a cerut explicit salvarea ("ține minte", "remember") | +40 |
|
||||
| `repeated` | Corecție repetată de 2+ ori pe același subiect | +30 |
|
||||
| `inferred` | Dedus din conversație (eroare rezolvată, pattern detectat) | -10 |
|
||||
|
||||
### Confidence
|
||||
|
||||
Nivelul de încredere în utilitatea entry-ului:
|
||||
|
||||
| Valoare | Descriere | Scor Cleanup |
|
||||
|---------|-----------|--------------|
|
||||
| `high` | Semnal puternic (comandă explicită, corecție repetată) | +20 |
|
||||
| `medium` | Semnal moderat (preferință inferată, referință istorică) | 0 |
|
||||
| `low` | Semnal slab (one-time fix posibil util) | -20 |
|
||||
|
||||
### Reinforced
|
||||
|
||||
Numărul de ori când entry-ul a fost folosit sau validat în sesiuni ulterioare.
|
||||
|
||||
| Valoare | Interpretare | Scor Cleanup |
|
||||
|---------|--------------|--------------|
|
||||
| 0 | Niciodată folosit | -30 (dacă > 30 zile) |
|
||||
| 1-2 | Folosit ocazional | +20 |
|
||||
| 3+ | Entry valoros, foarte folosit | +50 |
|
||||
|
||||
### Trigger
|
||||
|
||||
Fraza originală care a declanșat salvarea. Util pentru:
|
||||
- Audit: de ce a fost salvat acest entry?
|
||||
- Cleanup: context pentru decizia de ștergere
|
||||
- Debugging: verificare sistem de detecție semnal
|
||||
|
||||
---
|
||||
|
||||
## Format Pattern (Complet)
|
||||
|
||||
```markdown
|
||||
### {Titlu Descriptiv}
|
||||
**Discovered**: {YYYY-MM-DD} (feature: {context-scurt})
|
||||
**Source**: {source} | **Confidence**: {confidence} | **Reinforced**: {count}
|
||||
**Trigger**: "{fraza care a declanșat salvarea}"
|
||||
**Description**: {Descriere clară a pattern-ului și când să-l folosești}
|
||||
|
||||
**Example** (`{file}:{lines}`):
|
||||
\```{language}
|
||||
{cod exemplu}
|
||||
\```
|
||||
|
||||
**Tags**: {tag1}, {tag2}, {tag3}
|
||||
|
||||
---
|
||||
### Metadata (o linie)
|
||||
```
|
||||
@{YYYY-MM-DD} #{tag1} #{tag2} #{tag3} | {source}:{confidence}[:{reinforced}]
|
||||
```
|
||||
|
||||
## Format Gotcha (Complet)
|
||||
| Câmp | Valori | Descriere |
|
||||
|------|--------|-----------|
|
||||
| date | YYYY-MM-DD | Data salvării |
|
||||
| tags | max 3, cu # | Categorii pentru căutare |
|
||||
| source | explicit/inferred/repeated | Cum a fost capturat |
|
||||
| confidence | high/med/low | Nivelul de încredere |
|
||||
| reinforced | N (doar dacă >0) | Câte validări |
|
||||
|
||||
```markdown
|
||||
### {Titlu Descriptiv}
|
||||
**Discovered**: {YYYY-MM-DD} (feature: {context-scurt})
|
||||
**Source**: {source} | **Confidence**: {confidence} | **Reinforced**: {count}
|
||||
**Trigger**: "{fraza care a declanșat salvarea}"
|
||||
**Problem**: {Ce problemă a apărut}
|
||||
**Solution**: {Cum s-a rezolvat}
|
||||
Exemple:
|
||||
- `@2026-01-06 #git #workflow | explicit:high`
|
||||
- `@2026-01-05 #vue #reactivity | inferred:med:3`
|
||||
|
||||
**Tags**: {tag1}, {tag2}, {tag3}
|
||||
|
||||
---
|
||||
### Body Pattern
|
||||
```
|
||||
{Descriere concisă 1-2 propoziții}
|
||||
```{lang}
|
||||
{cod opțional}
|
||||
```
|
||||
```
|
||||
|
||||
---
|
||||
### Body Gotcha
|
||||
```
|
||||
**P**: {problema în max 100 char}
|
||||
**S**: {soluția în max 100 char}
|
||||
```
|
||||
|
||||
## Source Values
|
||||
|
||||
| Valoare | Descriere |
|
||||
|---------|-----------|
|
||||
| `explicit` | Utilizatorul a cerut explicit ("ține minte") |
|
||||
| `repeated` | Corecție repetată 2+ ori |
|
||||
| `inferred` | Dedus din conversație |
|
||||
|
||||
## Confidence Values
|
||||
|
||||
| Valoare | Descriere |
|
||||
|---------|-----------|
|
||||
| `high` | Semnal puternic, comandă explicită |
|
||||
| `med` | Semnal moderat, preferință inferată |
|
||||
| `low` | Semnal slab, one-time fix util |
|
||||
|
||||
## Convenții
|
||||
|
||||
1. **Titluri**: Folosește titluri descriptive, nu generice
|
||||
- ✅ "Vue Watch Needs Immediate Flag for Initial Load"
|
||||
- ❌ "Vue Problem"
|
||||
1. **Titluri**: Imperativ, descriptiv, max 60 char
|
||||
- ✅ "Commit .claude/rules în Git"
|
||||
- ❌ "Problema cu Git"
|
||||
|
||||
2. **Tags**: Folosește kebab-case, maxim 5 tags per entry
|
||||
- ✅ `vue`, `reactivity`, `watch`, `initialization`
|
||||
- ❌ `Vue.js`, `REACTIVITY`, `this is a tag`
|
||||
2. **Tags**: Lowercase, max 3
|
||||
- ✅ `#git #workflow #team`
|
||||
- ❌ `#Git, #WORKFLOW`
|
||||
|
||||
3. **Exemple**: Include întotdeauna cod exemplu când e posibil
|
||||
3. **Descrieri**: Concise, 1-2 propoziții
|
||||
- ✅ "Fișierele .claude/ trebuie incluse în Git pentru partajare."
|
||||
- ❌ Paragrafe lungi
|
||||
|
||||
4. **Context**: Folosește feature name scurt pentru context
|
||||
- ✅ `(feature: user-dashboard)`
|
||||
- ❌ `(feature: implementing the new user dashboard with stats and charts)`
|
||||
4. **Exemple cod**: Doar când adaugă valoare clară
|
||||
|
||||
5. **Frontmatter**: Fiecare fișier de domeniu (exceptând global) TREBUIE să aibă frontmatter cu `paths:`
|
||||
- Paths-urile trebuie să corespundă cu cele din `claude-learn-domains.md`
|
||||
## Comparație Format
|
||||
|
||||
6. **Trigger**: Păstrează fraza originală, fără modificări
|
||||
- ✅ `"ține minte să folosești camelCase"`
|
||||
- ❌ `"utilizatorul a cerut camelCase"`
|
||||
| Aspect | v2.x | v3.0 |
|
||||
|--------|------|------|
|
||||
| Char/pattern | ~600 | ~200 |
|
||||
| Metadata linii | 3 | 1 |
|
||||
| Trigger câmp | Da | Nu |
|
||||
| Statistics | Explicit | Calculat |
|
||||
| Separatori | `---` | Spațiu |
|
||||
|
||||
---
|
||||
## Parsing Regex
|
||||
|
||||
## Backward Compatibility
|
||||
|
||||
Entries vechi fără câmpurile noi sunt tratate ca:
|
||||
- Source: `inferred`
|
||||
- Confidence: `medium`
|
||||
- Reinforced: `0`
|
||||
- Trigger: `""`
|
||||
|
||||
La prima editare sau reinforcement, metadata va fi adăugată automat.
|
||||
|
||||
---
|
||||
|
||||
## Statistici Domeniu
|
||||
|
||||
Fiecare fișier de domeniu include statistici la final:
|
||||
|
||||
```markdown
|
||||
## Domain Statistics
|
||||
|
||||
- **Total Patterns**: {N}
|
||||
- **Total Gotchas**: {M}
|
||||
- **Total Reinforcements**: {R}
|
||||
- **Last Session**: {YYYY-MM-DD}
|
||||
- **Sessions Recorded**: {X}
|
||||
- **Last Cleanup**: {YYYY-MM-DD}
|
||||
```
|
||||
^## (P|G): (.+)$ → type, title
|
||||
^@(\d{4}-\d{2}-\d{2}) (.+) \| (.+)$ → date, tags_meta, source_conf
|
||||
```
|
||||
|
||||
Aceste statistici sunt actualizate automat de:
|
||||
- `/learn:analyze` - incrementează patterns/gotchas, sessions
|
||||
- `/learn:cleanup` - decrementează la ștergeri, actualizează Last Cleanup
|
||||
- Reinforcement tracking - incrementează Total Reinforcements
|
||||
Extract tags: `#(\w+)` din tags_meta
|
||||
Extract meta: split pe `:` → [source, confidence, reinforced?]
|
||||
|
||||
Reference in New Issue
Block a user