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:
2026-04-13 12:21:26 +02:00
parent eaca282f2f
commit aa5ae17ca8
4 changed files with 550 additions and 34 deletions
+51 -34
View File
@@ -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"
```
---