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:
Claude Agent
2026-01-07 00:44:48 +00:00
parent 48378aced4
commit 0207af18f6
8 changed files with 201 additions and 460 deletions

View File

@@ -266,64 +266,53 @@ Care dintre acestea vrei să le salvez?
- [edit N] - Modifică propunerea N
```
### Pas 6: Salvează în Fișierul Domeniului (cu Metadata)
### Pas 6: Salvează în Fișierul Domeniului (Format Minimalist v3.0)
Salvează în `.claude/rules/claude-learn-{domain}.md`
Dacă fișierul nu există, creează-l din template cu frontmatter corect.
Dacă fișierul nu există, creează-l din template cu comentariu HTML pentru paths.
Format Pattern (extins):
#### Format Pattern (minimalist):
```markdown
### {Titlu}
**Discovered**: {YYYY-MM-DD} (feature: {context})
**Source**: {source} | **Confidence**: {confidence} | **Reinforced**: 0
**Trigger**: "{fraza care a declanșat salvarea}"
**Description**: {descriere}
**Example** (`{file}:{lines}`):
## P: {Titlu max 60 char}
@{YYYY-MM-DD} #{tag1} #{tag2} | {source}:{confidence}
{Descriere 1-2 propoziții}
\```{language}
{code}
{cod opțional}
\```
**Tags**: {tags}
---
```
Format Gotcha (extins):
Exemple metadata:
- `@2026-01-06 #git #workflow | explicit:high` (nou, fără reinforced)
- `@2026-01-05 #vue #reactivity | inferred:med:3` (cu 3 reinforcements)
#### Format Gotcha (minimalist):
```markdown
### {Titlu}
**Discovered**: {YYYY-MM-DD} (feature: {context})
**Source**: {source} | **Confidence**: {confidence} | **Reinforced**: 0
**Trigger**: "{fraza care a declanșat salvarea}"
**Problem**: {problema}
**Solution**: {soluția}
**Tags**: {tags}
---
## G: {Titlu max 60 char}
@{YYYY-MM-DD} #{tag1} #{tag2} | {source}:{confidence}
**P**: {problema scurtă}
**S**: {soluția scurtă}
```
### Pas 7: Actualizează Statistici
**Reguli format:**
- Titlu: max 60 caractere, imperativ
- Tags: max 3, inline cu `#`
- Confidence: `high`, `med`, `low`
- Reinforced: afișat DOAR dacă > 0, format `:N` la final
- Fără separatori `---` între entries
- Fără secțiune Statistics (calculat dinamic de `/learn:status`)
La sfârșitul fișierului domeniului, actualizează:
- Incrementează Total Patterns/Gotchas
- Actualizează Last Session la data curentă
- Incrementează Sessions Recorded
- Actualizează Total Reinforcements (dacă s-au făcut în Pas 0.5)
### Pas 8: Confirmă
### Pas 7: Confirmă
```
✅ Salvat în claude-learn-{domain}.md:
- {N} patterns adăugate
- {M} gotchas adăugate
📈 Entries reinforced: {X}
Statistici {domain}: {P} patterns, {G} gotchas, {R} reinforcements total
```
**Notă:** Statisticile se calculează dinamic cu `/learn:status`.
---
## Argument: $ARGUMENTS
@@ -337,21 +326,16 @@ Dacă argumentul este:
## Compatibilitate Înapoi
### Format Vechi de Memorie
Dacă există fișierul vechi `claude-learn-memory.md` fără frontmatter:
```
⚠️ Detectat format vechi de memorie (claude-learn-memory.md)
### Format v2.x (verbose)
Entries în format vechi (cu `### Titlu`, `**Discovered**:`, `**Source**:`, etc.) sunt citite normal.
La prima editare, sunt convertite automat la formatul minimalist v3.0.
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
### Parsing Entries v3.0
Regex pentru parsing:
```
^## (P|G): (.+)$ → type, title
^@(\d{4}-\d{2}-\d{2}) (.+) \| (.+)$ → date, tags, meta
```
### Entries Fără Metadata
Entries vechi fără câmpurile noi (Source, Confidence, Reinforced, Trigger) sunt tratate ca:
- Source: inferred
- Confidence: medium
- Reinforced: 0
- Trigger: ""
La prima editare sau reinforcement, metadata va fi adăugată automat.
Tags: extrage toate `#(\w+)` din linia metadata
Meta: `{source}:{confidence}[:{reinforced}]`