# Flusso di creazione con IA

<PageBadges />

## Contesto completo, azioni limitate

Ogni richiesta include lo schema corrente completo e un catalogo di creazione versionato dal
form0-core installato. Il catalogo descrive campi, attributi, operatori, builtins, eventi,
riferimenti, calcoli e metadati AI esistenti.

L'agente non può sostituire il documento radice o scrivere file. Può proporre queste operazioni:

- `updateForm`
- `addField`, `updateField`, `moveField` e `removeField`
- `setTitleField` e `setStatusField`
- `setCalculation`
- `setFormEventCode`

I campi sono identificati da chiavi stabili. Le rinominazioni sicure aggiornano i riferimenti; le
rimozioni non sicure e le destinazioni irrisolte vengono rifiutate.

## Convalida prima dell'anteprima

form0-core applica il batch proposto a una copia in memoria. Lo schema originale non viene modificato.
Quindi convalida l'intero risultato, inclusi:

- regole dello schema e degli attributi
- condizioni e riferimenti ai campi
- espressioni calcolate, dipendenze e cicli
- ambito delle sezioni ripetibili
- tipi di evento, riferimenti e sintassi JavaScript

I batch non validi restituiscono diagnostica all'agente e non sostituiscono mai la bozza. Il core
installato prevale se la documentazione remota è in disaccordo. Consulta
[calcoli ed espressioni](/it/core/builtins/calculations-expressions-overview) ed
[eventi del modulo](/it/core/builtins/events-overview) per le funzionalità dello schema.

## Esaminare e modificare

Dopo una proposta valida, ispeziona il modulo di lavoro e il diff cumulativo:

```ansi
form0(ai)> /preview
form0(ai)> /diff
```

`/diff` confronta lo schema all'ingresso in modalità AI con lo schema di lavoro, incluse le modifiche
applicate e in sospeso. `/diff --pending` confronta l'ultimo schema applicato con la sola proposta in
sospeso. Usa `/json` per vedere lo schema di lavoro grezzo. Chiedi una revisione in linguaggio
naturale per produrre un altro batch coerente. Si esamina una sola proposta in sospeso alla volta.

Il modello spiega brevemente una proposta completata. Se invia mutazioni valide senza testo di
risposta, la CLI mostra un breve riepilogo deterministico prima dei comandi di revisione. Le richieste
di ispezione, spiegazione o diagnosi senza implementazione devono restituire una spiegazione e nessuna
proposta.

Se il server di anteprima è attivo, la bozza valida viene inviata subito con l'indicazione
**AI draft**. Rimane comunque un'anteprima in memoria.

## Applicare o scartare

L'applicazione è l'unica operazione che scrive la proposta:

```ansi
form0(ai)> /apply [schema-path]
```

Prima di scrivere, la CLI ricalcola la revisione su disco. Se coincide, scrive atomicamente e
aggiorna motore e browser. Per un nuovo modulo, richiede un percorso e conferma prima di
sovrascrivere un file esistente.

Scartare abbandona la proposta e ripristina nel browser la versione confermata:

```ansi
form0(ai)> /discard
```

Uscire dalla modalità AI ripristina l'anteprima allo stesso modo. Se una proposta non è stata
applicata, `/exit` chiede conferma prima di scartarla.

## Cambiare modulo

Usa `/load [file|form]` per caricare un altro modulo senza uscire dalla modalità AI. La destinazione
viene convalidata prima del passaggio, viene ripristinata la sua conversazione specifica, la cronologia
del diff cumulativo riparte dallo schema caricato e il server attivo viene aggiornato. Se una proposta
non è applicata, la CLI chiede conferma prima di scartarla.

## Annullare

L'annullamento non riscrive il file silenziosamente. Prepara come proposta l'ultimo schema salvato
durante la sessione AI corrente:

```ansi
form0(ai)> /undo
form0(ai)> /diff
form0(ai)> /apply
```

Ispeziona e applica esplicitamente la proposta. L'annullamento riguarda la sessione e non è una
cronologia persistente dello schema.

## Modifiche esterne e bozze obsolete

Se il watcher rileva una modifica su disco dopo la creazione della proposta, la bozza diventa
obsoleta. L'applicazione viene bloccata invece di unire modifiche incompatibili. Ricarica lo schema
confermato, chiedi all'agente di adattare la richiesta alla nuova revisione e controlla di nuovo.
