modulo 21 di 24 / Ore 41-60

Moduli 17-24 / Checkpoint 60 ore

Prompt per individuare violazioni dei livelli

Come formulare prompt efficaci per chiedere a un AI di trovare violazioni dei confini tra livelli nel Registro, con esempi di prompt e criteri per valutare le risposte.

25 min Architettura del software

Prompt per individuare violazioni dei livelli

Questa lezione appartiene al Modulo 21 — Usare l’AI come revisore.

Obiettivo della lezione

Formulare prompt precisi per chiedere a un AI di trovare violazioni dei confini architetturali nel Registro — e saper valutare le risposte per distinguere segnalazioni utili da falsi positivi.

Alla fine hai un template di prompt riutilizzabile e sai come interpretare la risposta.

Perché serve nel percorso

Un prompt vago produce una risposta vaga. “Controlla il mio codice” non porta a nulla di utile. Un prompt specifico — con contesto, criteri e un esempio di violazione — produce segnalazioni concrete che puoi verificare sul tuo codice.

Nel Registro del laboratorio

Prompt mal formulato (evita questo):

Controlla se il mio codice è ben strutturato.

L’AI risponde con consigli generali su naming, commenti, TypeScript — niente di specifico ai confini del Registro.

Prompt ben formulato:

Il mio progetto si chiama "Registro del laboratorio scolastico".
Ha 4 livelli: domain, application, infrastructure, presentation.

Regola da verificare: nessun file in src/domain/ deve importare da localStorage,
fetch, document o da altri livelli che non siano domain stesso.

Qui sotto ci sono i file di src/domain/. Dimmi se trovi violazioni di questa regola,
e per ognuna indica: il file, la riga, il tipo di violazione e come correggerla.

[incolla il contenuto dei file]

Variante per un livello specifico:

Il progetto ha questi livelli: domain, application, infrastructure, presentation.

Regola: i file in src/application/ possono importare solo da src/domain/ e da
interfacce definite localmente (non da src/infrastructure/ direttamente).

Analizza i file in src/application/ che ti mostro e segnala ogni import che
viola questa regola.

[incolla il contenuto dei file]

Procedura guidata

  1. Scegli il livello da verificare (domain, application o presentation).
  2. Scrivi la regola in una frase: “nessun file in X deve importare da Y”.
  3. Aggiungi il contesto del progetto (4 livelli, sistema scolastico, localStorage).
  4. Incolla i file reali del Registro.
  5. Chiedi all’AI di elencare le violazioni con file, riga e tipo.
  6. Per ogni violazione segnalata: apri il file reale e verifica.
  7. Applica solo le correzioni che hai verificato.

Attività in classe

Invia questo prompt a un AI con il contenuto dei tuoi file di src/application/:

Questo è il codice di src/application/ del mio progetto "Registro del laboratorio scolastico".

L'architettura ha 4 livelli:
- domain: regole pure, nessuna dipendenza esterna
- application: casi d'uso, dipende solo da domain e da contratti iniettati
- infrastructure: localStorage, adapter concreti
- presentation: HTML, DOM, event listener

Verifica questa regola: nessun file in application deve importare da:
- localStorage o window
- document o DOM API
- src/infrastructure/ direttamente
- src/presentation/

Per ogni violazione trovata indica:
- file: nome del file
- riga: numero approssimativo
- violazione: cosa è sbagliato
- correzione: come risolvere

Se non trovi violazioni, dimmelo esplicitamente.

Poi compila la scheda:

## Valutazione risposta AI

Violazioni segnalate:

Violazioni verificate sul codice reale (esistono davvero?):

Falsi positivi (segnalazioni non accurate):

Correzioni applicate:

Spiegazione guidata per studiare

Un buon prompt per la revisione AI ha tre parti:

1. Contesto del progetto — senza contesto, l’AI usa convenzioni generali che potrebbero non applicarsi:

Il mio progetto si chiama "Registro del laboratorio scolastico".
È un'applicazione browser-only con localStorage, scritta in JavaScript modulare.
Ha 4 livelli: domain, application, infrastructure, presentation.

2. La regola da verificare — precisa, verificabile, non ambigua:

Regola: nessun file in src/domain/ deve importare da src/infrastructure/,
da localStorage, da window, da document o da qualsiasi API del browser.

3. Il formato della risposta richiesto — strutturato per facilitare la verifica:

Per ogni violazione:
- file: nome del file
- riga: numero della riga
- violazione: descrizione del problema
- correzione suggerita: come risolvere

Come valutare la risposta:

  • Verifica ogni segnalazione aprendo il file — non fidarti ciecamente.
  • Se l’AI dice “nessuna violazione”, fai un controllo manuale rapido (grep -r "localStorage" src/domain/).
  • I falsi positivi sono comuni: l’AI può segnalare come violazione un import che è in realtà corretto nel contesto del progetto.

Passo per passo nel progetto

  1. Scrivi il prompt con le tre parti: contesto, regola, formato risposta.
  2. Incolla il contenuto dei file di un livello alla volta.
  3. Leggi la risposta e costruisci la tabella delle segnalazioni.
  4. Verifica ogni segnalazione sul codice reale.
  5. Applica le correzioni verificate in commit separati.

Prova di comprensione

  • Perché un prompt vago produce risposte inutili?
  • Qual è il rischio di applicare una correzione AI senza verificarla?
  • Come si verifica manualmente se un file di dominio importa da localStorage?
  • Cosa fa l’AI se non trova violazioni — e come si controlla?

Errori da evitare

  • inviare tutto il codice senza specificare quale regola verificare;
  • applicare tutte le correzioni senza verificarle sul codice reale;
  • usare il prompt come sostituto della comprensione dell’architettura;
  • non documentare le violazioni trovate e le correzioni applicate.

Prodotto da consegnare

Il prompt usato, la risposta dell’AI, la tabella di verifica (segnalazione / esiste / corretta / applicata) e le correzioni effettuate con commit separato.

Checklist di chiusura

  • il prompt contiene contesto, regola e formato richiesto
  • ogni segnalazione dell’AI è stata verificata sul codice reale
  • i falsi positivi sono stati identificati e scartati
  • le correzioni reali sono state applicate in commit separati
  • grep -r "localStorage" src/domain/ restituisce zero risultati

Risultato atteso

Ho formulato un prompt con contesto (4 livelli), regola (no localStorage in domain)
e formato risposta (file, riga, violazione, correzione).
L'AI ha segnalato 2 violazioni. Ne ho verificate entrambe: una era reale, una era un falso positivo.
Ho corretto la violazione reale spostando l'import nell'adapter.
Ho documentato il processo nella scheda di revisione.