step-4: add revise.py, step4-review skill, README update
- revise.py: automatic pre-processing (ALL-CAPS→##, numbered sections→###, TOC removal, broken paragraph merging, whitespace normalization); supports N. and Na. numbering patterns; universal heuristics - .claude/commands/step4-review.md: Claude Code skill for qualitative review of clean.md (🔴/🟡/🟢 report + interactive fixes) - README: document step-4 workflow with revise.py and /step4-review - .gitignore: exclude step-4/*/ and step-4/revision_log.md
This commit is contained in:
@@ -285,19 +285,59 @@ Livello 0 — testo piatto
|
||||
|
||||
### Step 4 — Revisione manuale
|
||||
|
||||
**Tipo:** manuale
|
||||
**Input:** `processed/documento/raw.md` + profilo struttura
|
||||
**Output:** `processed/documento/clean.md`
|
||||
**Tool:** il tuo editor di testo
|
||||
**Tipo:** manuale (con pre-processing automatico)
|
||||
**Input:** `step-3/<stem>/clean.md` + `step-3/<stem>/structure_profile.json`
|
||||
**Output:** `step-4/<stem>/clean.md` — MD revisionato
|
||||
**Script:** `step-4/revise.py`
|
||||
|
||||
> Questo è lo step più importante dell'intera pipeline.
|
||||
> La qualità del RAG dipende da questo step più di qualsiasi
|
||||
> parametro tecnico o scelta di modello.
|
||||
|
||||
Apri `clean.md` nel tuo editor e lavora sezione per sezione,
|
||||
guidato dal report dello step 1 e dal profilo dello step 3.
|
||||
#### Pre-processing automatico
|
||||
|
||||
**Struttura target del MD pulito:**
|
||||
Prima di qualsiasi revisione manuale, esegui lo script di revisione automatica:
|
||||
|
||||
```bash
|
||||
python step-4/revise.py --stem documento
|
||||
```
|
||||
|
||||
Lo script applica le seguenti trasformazioni euristiche, valide per qualsiasi documento:
|
||||
|
||||
| Trasformazione | Descrizione |
|
||||
|---|---|
|
||||
| Rimozione TOC | Righe che iniziano con `INDICE`, `INDEX`, `CONTENTS`, ecc. |
|
||||
| ALL-CAPS → `##` | Righe standalone in maiuscolo convertite in header section-case |
|
||||
| `N. testo` → `### N.` | Sezioni numerate (con 1+ spazio dopo il punto) convertite in h3 |
|
||||
| Unione paragrafi | Blocchi spezzati da salti pagina PDF uniti automaticamente |
|
||||
| Whitespace | Spazi multipli normalizzati, righe vuote ridotte |
|
||||
|
||||
Il profilo strutturale aggiornato viene salvato in `step-4/<stem>/structure_profile.json`.
|
||||
|
||||
#### Revisione assistita da Claude Code
|
||||
|
||||
Dopo il pre-processing, usa la skill integrata per una revisione qualitativa:
|
||||
|
||||
```
|
||||
/step4-review documento
|
||||
```
|
||||
|
||||
La skill analizza `step-4/<stem>/clean.md` e produce un report strutturato:
|
||||
|
||||
```
|
||||
🔴 BLOCCANTI — problemi che compromettono il chunking
|
||||
🟡 MINORI — artefatti visibili ma non bloccanti
|
||||
🟢 OK — categorie senza problemi
|
||||
```
|
||||
|
||||
Poi propone le correzioni e le applica solo su tua approvazione.
|
||||
|
||||
#### Revisione manuale residua
|
||||
|
||||
Apri `step-4/<stem>/clean.md` nel tuo editor e verifica quanto segnalato
|
||||
dalla skill. Il criterio di qualità rimane lo stesso:
|
||||
|
||||
**Struttura target:**
|
||||
|
||||
```markdown
|
||||
# Titolo del documento
|
||||
@@ -309,31 +349,8 @@ guidato dal report dello step 1 e dal profilo dello step 3.
|
||||
Testo fluente, frasi complete, nessun artefatto.
|
||||
Ogni paragrafo è semanticamente autonomo.
|
||||
Una riga vuota separa le sezioni.
|
||||
|
||||
### Sottosezione successiva
|
||||
|
||||
Testo della sottosezione successiva...
|
||||
```
|
||||
|
||||
**Cosa rimuovi:**
|
||||
|
||||
- Numeri di pagina isolati (una riga con solo `42`)
|
||||
- Intestazioni e piè di pagina ripetitivi
|
||||
- Righe vuote multiple — massimo una tra sezioni
|
||||
|
||||
**Cosa correggi:**
|
||||
|
||||
- Sillabazioni residue: `estra-\ntto` → `estratto`
|
||||
- Righe spezzate artificialmente: unisci le righe
|
||||
che appartengono alla stessa frase
|
||||
- Parole unite per errore: `ilbene` → `il bene`
|
||||
|
||||
**Cosa sistemi:**
|
||||
|
||||
- Ogni sezione ha il suo titolo al livello corretto
|
||||
- Nessuna sezione manca di `###` se ne aveva uno nell'originale
|
||||
- Nessun titolo è duplicato o malformato
|
||||
|
||||
**Il criterio di qualità:**
|
||||
Leggi ogni sezione ad alta voce. Se suona naturale e fluente è corretta.
|
||||
Se si interrompe c'è una riga spezzata. Se suona ripetitiva c'è un artefatto.
|
||||
@@ -341,11 +358,11 @@ Se si interrompe c'è una riga spezzata. Se suona ripetitiva c'è un artefatto.
|
||||
**Traccia il lavoro:**
|
||||
|
||||
```bash
|
||||
# Aggiorna notes/revision_log.md con ogni correzione rilevante
|
||||
# Commita spesso per poter tornare indietro
|
||||
# step-4/revision_log.md viene aggiornato automaticamente da revise.py
|
||||
# Commita dopo la revisione manuale
|
||||
|
||||
git add processed/documento/clean.md notes/revision_log.md
|
||||
git commit -m "revisione: sezioni 1-50 corrette"
|
||||
git add step-4/revision_log.md
|
||||
git commit -m "step-4: revisione nietzsche completata"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user