IllAIra FreeAI Toolkit 0.3.1
Due passi nello stesso pack. Nessun modello dentro questi script.

Passo 1 — normalizzatore
  1. Copia export / .md / skill in  metti_qui/
  2. ./normalizza.sh   (Windows: normalizza.bat)
  3. Apri grezzo/INDICE.md

Passo 2 — conversione IllAIra (N giri, LLM dell'utente)
  Via A — chat
    carica ADDESTRAMENTO.md, poi un file di output/_giri/ alla volta
    più i lotti di grezzo/ elencati. Scrivi in output/.
  Via B — CLI (Grok/Claude/Codex già autenticati)
    ./run.sh
    ./run.sh --agente grok
  Poi:
    python3 converti.py --pack
    → output/illaira-import.zip  (solo reminder.md + modulo_*.md + memoria_*.md, basename)
    Importa lo zip nel CLM.

Opzioni
  python3 normalizza.py --in … --out … [--provider chatgpt|claude|gemini|grok]
  python3 converti.py --in grezzo --out output [--dry-run|--pack|--agente grok]

Provider passo 1
  grezzo   0.1   copie .md/.txt, skill, custom instructions, memorie
  chatgpt  0.1   JSON ad albero mapping
  claude   0.1   chat_messages + uuid; memorie; progetti
  gemini   0.1   Takeout My Activity JSON e HTML
  grok     0.1   {conversation, responses}

Limiti
  - Gli script non chiamano un modello e non mandano file in rete.
  - Zip con ".." rifiutati. metti_qui/ intatto. grezzo/ ricreato a ogni normalizza.
  - Fidelità: buco → «non dichiarato nel grezzo». Niente biografia inventata.
  - Takeout Gemini: log di attività, risposte spesso tronche.
  - Stampi modulo/memoria: forma D2. reminder.md è il profilo CLM (non è un external).

Prove
  python3 prova.py
  (fixture sintetiche in fixture/; non sono export di utenti.)

Python 3 di sistema, nessuna libreria da installare.
Still free. I file che metti in metti_qui/ restano sul tuo disco.
