From f76184340e31b6911a54fa9c976bb3e6bb4c92ad Mon Sep 17 00:00:00 2001 From: Davide Grilli Date: Wed, 20 May 2026 16:23:03 +0200 Subject: [PATCH] chore: rimuove comando /post-chunk obsoleto Co-Authored-By: Claude Sonnet 4.6 --- .claude/commands/post-chunk.md | 119 --------------------------------- 1 file changed, 119 deletions(-) delete mode 100644 .claude/commands/post-chunk.md diff --git a/.claude/commands/post-chunk.md b/.claude/commands/post-chunk.md deleted file mode 100644 index 05a139e..0000000 --- a/.claude/commands/post-chunk.md +++ /dev/null @@ -1,119 +0,0 @@ ---- -description: Perfeziona i chunk di un documento (verifica, dry-run, fix, ri-verifica) e li prepara per la vettorizzazione. -allowed-tools: Read Bash Grep -argument-hint: ---- - -## Passo 0 β€” Verifica fresca - -Esegui sempre `verify_chunks.py` per un report aggiornato: - -```bash -source .venv/bin/activate && python chunks/verify_chunks.py --stem $ARGUMENTS -``` - -Leggi il report appena generato: - -!`python3 -c " -import json, sys -try: - r = json.load(open('chunks/$ARGUMENTS/report.json')) - v = r.get('verdict','?') - s = r.get('stats', {}) - t = r.get('thresholds', {}) - print(f'Verdict: {v}') - print(f'Totale chunk: {s.get(\"total\",\"?\")} | OK: {s.get(\"ok\",\"?\")}') - print(f'Min: {s.get(\"min_chars\",\"?\")} char Max: {s.get(\"max_chars\",\"?\")} char Media: {s.get(\"avg_chars\",\"?\")} char') - print(f'Soglie: MIN={t.get(\"min_chars\",200)} MAX={t.get(\"max_chars\",800)}') - bl = r.get('blockers', {}) - wa = r.get('warnings', {}) - for cat, label in [('empty','Vuoti'), ('no_prefix','Senza prefisso'), ('incomplete','Frasi spezzate')]: - items = bl.get(cat, []) - if items: - print(f' πŸ”΄ {label}: {len(items)}') - for c in items[:3]: - print(f' [{c[\"chunk_id\"]}] {c[\"n_chars\"]} char β†’ {c[\"last_text\"][-60:]!r}') - for cat, label in [('too_short','Troppo corti'), ('too_long','Troppo lunghi'), ('incomplete_math','Math incompleto')]: - items = wa.get(cat, []) - if items: - print(f' 🟑 {label}: {len(items)}') - for c in items[:3]: - print(f' [{c[\"chunk_id\"]}] {c[\"n_chars\"]} char') -except Exception as e: print(f'ERRORE lettura report: {e}') -" 2>/dev/null` - ---- - -## Se verdict == "ok" - -βœ… Nessun problema bloccante. Comunica: - -``` -βœ… Chunk pronti β€” procedi con la vettorizzazione: - python ingestion/ingest.py --stem $ARGUMENTS -``` - -Se ci sono solo 🟑, spiega brevemente i warning e chiedi se l'utente vuole risolverli prima o procedere. - ---- - -## Se verdict == "warnings_only" o "blocked" - -### Passo 1 β€” Dry-run - -```bash -source .venv/bin/activate && python chunks/fix_chunks.py --stem $ARGUMENTS --dry-run -``` - -Spiega in italiano ogni operazione pianificata: - -- **rimuovi chunk vuoti** β€” privi di testo, non contribuiscono al retrieval -- **aggiungi prefisso** β€” `[sezione > titolo]` fornisce contesto all'embedding; senza, il chunk Γ¨ decontestualizzato -- **fondi incompleti** β€” frase spezzata a metΓ : il chunk corrente e il successivo formano una frase unica -- **fondi troppo corti** β€” sotto MIN_CHARS: troppo brevi per portare informazione semantica utile -- **spezza troppo lunghi** β€” sopra MAX_CHARSΓ—1.5: troppo densi, degradano la precision del retrieval - -Se ci sono solo 🟑 (nessun πŸ”΄), informa che si puΓ² procedere anche senza fix e chiedi la preferenza. - -### Passo 2 β€” Conferma - -Chiedi: **"Applico le correzioni?"** - -Applica solo su risposta affermativa esplicita. - -### Passo 3 β€” Applica - -```bash -source .venv/bin/activate && python chunks/fix_chunks.py --stem $ARGUMENTS -``` - -### Passo 4 β€” Ri-verifica automatica - -```bash -source .venv/bin/activate && python chunks/verify_chunks.py --stem $ARGUMENTS -``` - -Leggi il nuovo `chunks/$ARGUMENTS/report.json` e riporta: -- Nuovo verdict -- Delta chunk (N prima β†’ N dopo) -- Problemi residui se presenti - -### Passo 5 β€” Conclusione - -Se verdict finale Γ¨ `ok` o `warnings_only` senza πŸ”΄: - -``` -βœ… Chunk pronti in chunks/$ARGUMENTS/chunks.json - Procedi con la vettorizzazione: - python ingestion/ingest.py --stem $ARGUMENTS -``` - -Se rimangono πŸ”΄ dopo il fix (testo non spezzabile o struttura anomala nel sorgente): - -``` -πŸ”΄ X problemi residui non risolvibili automaticamente. - Torna a conversione/$ARGUMENTS/clean.md e correggi manualmente le sezioni indicate, - poi riesegui nell'ordine: - python chunks/chunker.py --stem $ARGUMENTS --force - python chunks/verify_chunks.py --stem $ARGUMENTS -```