Files
rag-from-scratch/.claude/commands/step6-fix.md
T
davide 386af44c83 step-6: add fix_chunks.py, make step-6 self-contained
- verify_chunks.py now reads from step-6/<stem>/chunks.json and
  auto-copies from step-5 on first run (input and output both in step-6)
- fix_chunks.py: new script that applies fixes directly on chunks.json
  (merge too-short/incomplete, split too-long, remove empty, add prefix)
  supports --dry-run to preview changes before applying
- step6-fix.md skill updated to use fix_chunks.py workflow:
  dry-run → user approval → apply → re-verify
2026-04-13 23:56:50 +02:00

2.3 KiB

description, allowed-tools, argument-hint
description allowed-tools argument-hint
Legge il report di step 6, mostra le fix pianificate e le applica su approvazione tramite fix_chunks.py. Read Bash Grep <stem>

Leggi e interpreta step-6/$ARGUMENTS/report.json.

Report: !cat step-6/$ARGUMENTS/report.json 2>/dev/null || echo "ERRORE: report.json non trovato — esegui prima: python step-6/verify_chunks.py --stem $ARGUMENTS"


In base al contenuto del report, segui le istruzioni qui sotto.

Se verdict == "ok"

Non c'è nulla da fare. Comunica all'utente che può procedere:

✅ Nessun problema — procedi con la vettorizzazione:
   python step-8/ingest.py --stem $ARGUMENTS

Se verdict == "warnings_only" o "blocked"

Passo 1 — Mostra le fix pianificate (dry-run)

Esegui il dry-run e mostra l'output all'utente:

source .venv/bin/activate && python step-6/fix_chunks.py --stem $ARGUMENTS --dry-run

Spiega brevemente cosa farà ogni operazione:

  • rimuovi chunk vuoti: elimina chunk senza testo
  • aggiungi prefisso: inserisce [sezione > titolo] dove manca
  • fondi incompleti: unisce i chunk con frase spezzata al chunk successivo
  • fondi troppo corti: unisce chunk < 200 char con il successivo
  • spezza troppo lunghi: divide chunk > 1200 char al confine di paragrafo/frase

Passo 2 — Chiedi conferma

Chiedi all'utente: "Applico le correzioni?"

Applica solo su approvazione esplicita.

Passo 3 — Applica e ri-verifica

source .venv/bin/activate
python step-6/fix_chunks.py --stem $ARGUMENTS
python step-6/verify_chunks.py --stem $ARGUMENTS

Leggi il nuovo step-6/$ARGUMENTS/report.json e comunica:

  • Il nuovo verdict
  • Quanti warning/blockers residui rimangono
  • Se il verdict è ok o warnings_only senza blockers: comunica che si può procedere con step-8

Dopo le correzioni

Se il verdict finale è ok:

✅ chunks.json pulito salvato in step-6/$ARGUMENTS/
   Procedi con la vettorizzazione:
   python step-8/ingest.py --stem $ARGUMENTS

Se rimangono warning minori (too_short/too_long non risolvibili perché testo non spezzabile):

🟡 X warning residui non risolvibili automaticamente (testo non spezzabile).
   Puoi procedere comunque con la vettorizzazione:
   python step-8/ingest.py --stem $ARGUMENTS