Modello di specifica su una pagina per app AI coerenti
Usa un modello di specifica su una pagina per trasformare un'idea vaga in prompt chiari per Planning Mode: utenti, job-to-be-done, entità e casi limite.

Perché Planning Mode conta quando l'idea è ancora vaga
Un'idea vaga va bene per sognare. È problematica per costruire.
Se chiedi a un builder AI “un'app per tracciare abitudini” senza altri dettagli, deve indovinare cosa intendi. Quegli indovinelli cambiano da prompt a prompt, quindi cambia anche l'app. Ti ritrovi con schermate che non si allineano, dati che vengono rinominati a metà sviluppo e funzionalità che compaiono, spariscono e poi ricompaiono in forma diversa.
Quella incoerenza di solito si manifesta in pochi punti:
- Ipotesi diverse su chi sia l'utente (utente singolo vs team)
- Flussi in conflitto (prima registrare, poi creare vs prima creare, poi registrare)
- Nomi dei dati che mutano (habit vs routine vs goal)
- Casi limite mancanti (cosa succede se un utente elimina qualcosa)
“Planning Mode” è una semplice pausa prima di costruire. Scrivi le decisioni che altrimenti l'AI inventerebbe. Lo scopo è la coerenza: un insieme di scelte che UI, backend e database possano seguire.
L'obiettivo non è la perfezione. È una build che puoi iterare senza rattoppare continuamente una pila di ipotesi. Se poi cambi idea, aggiorni una piccola specifica e rigeneri con la stessa logica.
Per questo un modello di specifica su una pagina è utile. Non è un PRD lungo e non sono settimane di diagrammi. È una pagina che risponde a quattro cose: chi sono gli utenti, cosa devono ottenere, quali dati esistono (in linguaggio semplice) e quali casi limite o non-obiettivi impediscono alla prima versione di esplodere.
Esempio: “Un'app di prenotazione” diventa molto più chiara una volta deciso se è per il singolo proprietario di un salone o per un marketplace, e se i clienti possono riprogrammare, cancellare o non presentarsi.
Il modello one-page, spiegato in un minuto
Un modello di specifica su una pagina è una nota breve che trasforma un'idea vaga in istruzioni chiare. Non stai “disegnando tutto il prodotto”. Stai dando al tuo builder AI abbastanza struttura per fare le stesse scelte ogni volta.
La pagina ha quattro blocchi. Se non ci sta su una pagina, probabilmente hai troppe funzionalità per una prima build.
- Users: chi lo usa (2–3 tipi) e cosa li distingue.
- Jobs-to-be-done: cosa ciascun utente cerca di ottenere, scritto come risultato.
- Entities: le cose principali che memorizzi e tracci (i sostantivi dei dati).
- Edge cases + non-goals: cosa può andare storto e cosa non costruirai ancora.
Una pagina impone vincoli utili. Ti spinge a scegliere un utente primario, definire il flusso minimo di successo ed evitare promesse vaghe come “supportare tutto”. Questi vincoli evitano che un'app costruita dall'AI cambi idea tra le schermate.
Il dettaglio “abbastanza buono” sono affermazioni semplici e testabili. Se qualcuno può leggerle e chiedere “Come verifichiamo che funzioni?” sei al livello giusto.
Un rapido obiettivo:
- Un utente nuovo può completare il lavoro principale in meno di 2 minuti.
- Ogni job ha un inizio e una fine chiari (niente “gestire cose” aperto).
- Ogni entità ha 3–7 campi di cui hai davvero bisogno ora.
- I 5 principali edge case sono nominati (duplicati, permessi, stati vuoti, errori, input errati).
Tieni il linguaggio semplice. Scrivi frasi che potresti incollare direttamente nei prompt, come “Un manager può approvare o rifiutare una richiesta, e il richiedente riceve un aggiornamento di stato.”
Passo dopo passo: compila il modello in 20 minuti
Imposta un timer di 20 minuti e punta a “abbastanza chiaro per costruire”, non “perfetto”. Lo scopo è rimuovere le congetture così il tuo builder AI prende sempre le stesse decisioni.
Inizia con una singola frase che risponde: per chi è e quale risultato ottengono?
Esempio: “Un'app mobile per proprietari di cani per tracciare passeggiate e visite veterinarie in un unico posto.”
Se non riesci a dirlo in una frase, probabilmente sono due app.
Poi nomina 1–3 tipi di utenti come persone reali, non ruoli astratti. “Proprietario”, “Veterinario” e “Familiare” è meglio di “Utente A”. Per ciascuno aggiungi una riga corta su cosa gli interessa di più.
Scrivi poi 3–7 jobs-to-be-done nel formato: “Quando [situazione], voglio [azione], così posso [risultato].” Mantienili testabili. “Quando finisco una passeggiata, voglio registrare distanza e note, così posso individuare pattern” è più chiaro di “tracciare la salute”.
Ora definisci le entità e i campi chiave senza parlare di database. Pensa alle “cose che l'app ricorda”. Per l'app dei cani: Dog (nome, età), Walk (data, durata, note), Visit (data, clinica, costo). Se un campo non è usato in una schermata o in un job, lascialo fuori.
Termina con due blocchi corti: edge cases e non-goals. Gli edge case sono fastidiosi ma comuni (“nessuna connessione”, “due cani con lo stesso nome”). I non-goals sono cose che non costruirai ancora (“niente pagamenti”, “niente feed sociale”).
Infine, converti ogni blocco in prompt che il tuo builder può seguire. Mantenere la struttura coerente (scopo, utenti, job, entità, edge cases) aiuta il sistema a generare schermate, dati e flussi allineati.
Utenti e job che un'AI può davvero seguire
Se la tua specifica dice “per tutti”, un builder AI dovrà indovinare cosa costruire prima. In un modello su una pagina, definisci gli utenti per intento (cosa vogliono fare), non per demografia. L'intento porta a scelte chiare su schermate, dati e permessi.
Nomina 2–4 tipi di utenti, ciascuno con un unico obiettivo principale. Buoni esempi: “Cliente che effettua un ordine”, “Membro del team che evadi gli ordini”, “Manager che revisiona le performance”. Esempi vaghi: “18–35”, “professionisti occupati” o “admin” (a meno che tu non dica cosa amministrano).
Scrivi i JTBD in un formato rigoroso
Usa sempre la stessa struttura: “Quando..., voglio..., così posso...”. Questo mantiene l'app focalizzata sui risultati e dà al builder AI requisiti stabili e testabili.
Esempi realistici di JTBD con “fatto” chiaramente definito:
- Quando finisco una chiamata con un cliente, voglio registrare i prossimi passi in un unico posto, così posso seguire nei tempi. Fatto significa: nota salvata, data di scadenza impostata, promemoria schedulato.
- Quando arriva una nuova richiesta, voglio approvarla o rifiutarla rapidamente, così il lavoro procede. Fatto significa: decisione registrata, richiedente notificato, stato aggiornato.
- Quando sono da mobile, voglio vedere solo i compiti di oggi, così posso agire senza cercare. Fatto significa: compiti filtrati a oggi, un tocco per completare.
- Quando commetto un errore, voglio annullare l'ultima modifica, così posso recuperare senza supporto. Fatto significa: stato precedente ripristinato, nota di audit creata.
I criteri di successo eliminano l'ambiguità “sembra giusto”. Dicono al builder cosa l'interfaccia deve permettere e cosa backend deve memorizzare.
Aggiungi permessi a livello alto
Non scrivere un piano di sicurezza completo. Dì soltanto chi può fare cosa, in linguaggio semplice.
Esempio: “I membri possono creare e modificare i propri elementi. I manager possono modificare qualsiasi elemento e cambiare stato. I proprietari possono gestire utenti e fatturazione.”
Se stai usando una fase di planning in uno strumento come Koder.ai, questi tipi di utenti, linee JTBD e permessi diventano input affidabili. Prevengono anche che l'AI inventi ruoli extra o mischi responsabilità tra le schermate.
Entità: definire i dati senza essere tecnici
Le entità sono le “cose” che la tua app tiene traccia. Se le nomini chiaramente, il tuo builder AI può creare schermate, form e un database coerenti. Questo evita campi non corrispondenti e funzionalità random.
Inizia elencando i sostantivi principali. Se l'app è per “gestire progetti”, i sostantivi potrebbero essere Project, Task e Comment. Se è per “prenotare tagli di capelli”, potresti avere Booking, Service, Customer e Staff.
Scegli 5–10 campi che la gente usa davvero
Per ogni entità, scrivi i campi in parole di tutti i giorni, non termini da database. Immagina cosa una persona scriverebbe in un form.
- Task: titolo, descrizione, stato, data di scadenza, priorità, assegnato a, creato da
- Project: nome, obiettivo, data inizio, data fine, proprietario, archiviato (sì/no)
- Invoice: numero fattura, nome cliente, importo, valuta, data scadenza, pagato (sì/no)
Se non riesci a spiegare un campo in una frase, probabilmente è troppo dettagliato per la prima versione.
Relazioni e regole in linguaggio semplice
Descrivi come le entità si collegano usando frasi semplici:
“Un utente può avere molti progetti.” “Ogni task appartiene a un progetto.” “Un commento appartiene a un task e ha un autore.”
Questo dà al builder abbastanza struttura per generare liste coerenti, pagine di dettaglio e filtri.
Aggiungi un paio di regole dati che evitino comportamenti disordinati:
- Obbligatorio: “Il titolo del task è obbligatorio.”
- Unico: “Il numero fattura deve essere unico.”
- Limiti: “Descrizione max 500 caratteri.”
- Default: “I nuovi task iniziano con stato = Open.”
Infine, riduci lo scope nominando ciò che non memorizzerai ancora. Esempio: “Niente allegati in v1” o “Non tracciare ancora i turni dello staff, solo le prenotazioni.” Queste esclusioni contano perché fermano l'app dall'ingrandirsi nella direzione sbagliata.
Schermate e flussi: mantieni semplice e prevedibile
Un modello su una pagina funziona meglio quando la prima versione ha poche schermate stabili. Se provi a progettare ogni schermata che l'app potrebbe avere un giorno, il builder AI continuerà a indovinare e l'interfaccia si discosterà a ogni build.
Inizia nominando le schermate minime che permettono a qualcuno di completare il lavoro principale. Per la maggior parte delle MVP, 3–6 schermate sono sufficienti:
- Sign in
- Lista (i tuoi elementi principali)
- Dettaglio (visualizza un elemento)
- Create/Edit (un form)
- Impostazioni (opzionale)
Poi scrivi il percorso “happy path” come una breve storia dall'inizio alla fine.
Esempio: “L'utente effettua il login, arriva sulla lista, cerca, apre un elemento, modifica un campo, salva e torna alla lista.”
Per ogni schermata annota le azioni chiave in parole semplici. Evita schermate “fai tutto”. Scegli le 2–4 azioni più importanti, come creare, modificare, cercare, esportare o archiviare.
Decidi anche cosa deve essere veloce e cosa può essere “abbastanza buono”. “Veloce” solitamente significa che la lista si apre subito, la ricerca risponde rapidamente e il salvataggio sembra istantaneo. “Abbastanza buono” può essere un'esportazione che impiega qualche secondo, analitiche basi o impostazioni scarne.
Infine, cattura ruoli e accessi in una linea per ruolo:
- Viewer: può vedere e cercare
- Editor: può creare e modificare
- Admin (solo se necessario): può gestire utenti e cancellare
Questo mantiene le schermate prevedibili, evita sorprese di permessi e riduce riscritture successive.
Edge cases e non-goals che evitano riscritture
La maggior parte delle riscritture avviene per un motivo: l'app funziona nel percorso felice, poi rompe quando la vita reale arriva.
Un buon modello su una pagina fa spazio per edge cases e non-goals, e quel piccolo spazio salva ore.
Inizia con ogni job-to-be-done e chiedi: cosa potrebbe andare storto? Mantienilo semplice, non tecnico. Stai rimuovendo ambiguità così il builder prende sempre la stessa decisione.
Casi comuni che vale la pena segnare:
- Informazioni mancanti o incomplete (campi vuoti, indirizzo sconosciuto, nessuna foto profilo)
- Duplicati (stesso utente si iscrive due volte, stesso elemento aggiunto due volte)
- Conflitti (due persone modificano lo stesso record, stato cambiato mentre guardi)
- Limiti e timeout (connessione lenta, upload fallisce, richiesta troppo lunga)
- Problemi di permessi (utente prova a vedere o modificare ciò che non dovrebbe)
Poi decidi la risposta. Sii specifico: “Blocca l'azione e mostra un messaggio chiaro”, “Permetti di salvare come bozza”, o “Riprova una volta, poi mostra un pulsante per riprovare”. Queste regole si traducono direttamente in prompt coerenti.
Aggiungi aspettative di privacy e sicurezza in una o due righe. Per esempio: “Raccogli il minimo necessario”, “Gli utenti possono cancellare il proprio account e tutti i dati personali”, “Nascondi elementi privati per default”. Se la tua app prevede contenuti generati dagli utenti, annota cosa fare con segnalazioni e spam, anche se è semplice in v1.
Infine, scrivi i non-goals per fermare lo scope creep. Scegli le funzionalità più grandi e seducenti che non farai ora.
Esempi di non-goals chiari:
- Niente pagamenti o abbonamenti in v1
- Niente login sociale (solo email per ora)
- Niente dashboard admin oltre a lista e delete di base
- Niente modalità offline
Un esempio rapido: se il job è “Crea un evento”, definisci cosa succede quando la data è nel passato, il titolo è vuoto o lo stesso evento viene creato due volte. Quella chiarezza previene la prossima riscrittura.
Trasforma la specifica in prompt che il tuo builder AI può eseguire
Il modo più veloce per ottenere risultati coerenti è trasformare ogni blocco della specifica in un piccolo prompt diretto. Pensalo come dare al builder un mazzo di carte da seguire in ordine, invece di una richiesta grande e vaga.
Converti ogni blocco (Users, Jobs, Entities, Screens, Edge cases, Non-goals) in un'istruzione con nomi e verbi chiari. Evita opinioni come “rendilo pulito” a meno che non definisci cosa significa “pulito”.
Un semplice pattern di prompt che funziona
Usa un ciclo in due passaggi: costruisci prima, poi convalida rispetto alla specifica.
- Build: “Crea il modello dati e le API per queste Entities: [incolla Entities]. Supporta questi ruoli: [incolla Users].”
- Build: “Crea schermate e flussi esattamente per: [incolla Screens/Flows].”
- Validate: “Ora controlla il tuo lavoro rispetto a questa specifica. Elenca le discrepanze e correggile: [incolla la specifica completa].”
Aggiungi una breve definizione di fatto così il builder sa quando fermarsi. Rendila misurabile:
- Tutti i ruoli elencati possono completare ogni job-to-be-done end-to-end
- Ogni entità ha create, view, edit e archive (se la specifica lo richiede)
- Le schermate corrispondono ai flussi nominati, con etichette dei campi coerenti
- Gli edge case sono gestiti con messaggi chiari (niente fallimenti silenziosi)
Aggiungi vincoli solo quando contano davvero: dispositivi richiesti (mobile-first), autenticazione richiesta (azioni solo admin), o uno stack obbligatorio (per esempio frontend React, backend Go, PostgreSQL) se la tua piattaforma lo richiede.
Richiedere modifiche senza rompere il piano
Quando vuoi modifiche, fai riferimento al blocco della specifica, non al codice.
Esempio: “Aggiorna il blocco Entities: aggiungi ‘Subscription’ con i campi X e Y. Poi rigenera solo le API e le schermate interessate, e riesegui la validazione.”
Questo mantiene il piano stabile permettendoti di iterare in sicurezza.
Un esempio realistico: dall'idea ai prompt di Planning Mode
Immagina di voler una semplice app per promemoria appuntamenti per un piccolo salone. L'obiettivo non è un sistema di prenotazione completo. È un posto leggero per memorizzare appuntamenti e inviare promemoria.
Ecco come appare una specifica su una pagina compilata.
APP: Appointment Reminder Tracker
GOAL: Track appointments and send reminders. No payments, no online booking.
USERS
1) Owner/Staff: creates and manages appointments, wants fewer no-shows.
2) Client: receives reminders, wants an easy way to confirm.
JOBS TO BE DONE (JTBD)
1) As staff, I add an appointment in under 30 seconds.
2) As staff, I see today's schedule in time order.
3) As staff, I mark a client as confirmed or no-show.
4) As staff, I resend a reminder when asked.
5) As a client, I confirm from a message without creating an account.
ENTITIES (DATA)
- Client: id, name, phone, email (optional), notes
- Appointment: id, client_id, service, start_time, duration_min, status (scheduled/confirmed/canceled/no_show)
- Reminder: id, appointment_id, channel (sms/email), send_at, sent_at, result (ok/failed)
- StaffUser: id, name, role (owner/staff)
Relationships: Client 1-to-many Appointment. Appointment 1-to-many Reminder.
EDGE CASES (WHAT BREAKS NAIVE BUILDS)
1) Duplicate client (same phone, different name)
2) Overlapping appointments for the same staff
3) Time zone changes (travel, daylight saving)
4) Client has no email, SMS only
5) Reminder send fails, needs retry and visible status
6) Appointment edited after reminder scheduled
7) Client cancels after confirmation
8) Same-day appointment created 10 minutes before start
9) Phone number format varies (+1, spaces, dashes)
10) Deleting a client with future appointments
Ora trasformalo in un bundle di prompt che puoi incollare in Planning Mode per la costruzione.
PLANNING MODE PROMPT BUNDLE
1) Build an MVP web app with these entities and relationships exactly as written.
2) Required screens: Login (StaffUser), Today Schedule, Client List, Client Detail, Appointment Create/Edit.
3) Required flows: create client, create appointment for a client, confirm/cancel/no-show, schedule reminders, resend reminder.
4) Constraints: no payments, no public booking page, no client accounts.
5) Edge-case handling: implement validation and UI feedback for all 10 edge cases listed.
6) Output: database schema, API endpoints, and UI behavior notes per screen.
Trappole comuni che rendono incoerenti le app costruite dall'AI
L'output disordinato spesso nasce da una specifica vaga e da liste di feature. Un builder AI fa quello che chiedi, ma non legge la mente. Piccoli buchi diventano grandi differenze tra schermate e flussi.
Queste trappole rompono più spesso la coerenza, e il modello su una pagina le sistema:
- Feature invece di job: “Aggiungi preferiti” è una feature. Un job è “salvare elementi per rivederli dopo”. I job includono intento e successo, quindi l'AI sa dove mettere il pulsante, cosa succede dopo il salvataggio e cosa dire negli stati vuoti.
- Troppe entità troppo presto: Se definisci 12 tabelle il primo giorno, la logica si disperde ovunque. Inizia con il modello più piccolo che può essere spedito. Se “Project”, “Task”, “Comment”, “Tag” e “Attachment” sembra troppo, parti solo con “Project” e “Task”, poi aggiungi il resto quando il flusso core funziona.
- Permessi mancanti: Se non dici chi può modificare o cancellare, il builder indovinerà. Scrivi regole semplici come “Solo il proprietario può cancellare”, “I membri possono creare e modificare”, “I viewer possono solo leggere”. Questo riduce anche esposizioni accidentali dei dati.
- Nessun criterio di successo chiaro: Senza una definizione di fatto ottieni iterazioni infinite. Aggiungi 2–4 controlli di accettazione, tipo “L'utente può creare un task in meno di 30 secondi” o “I task si mostrano correttamente dopo il refresh.”
- Edge case senza comportamento atteso: Elencare “offline”, “email duplicate” o “lista vuota” non basta. Per ciascuno dichiara cosa l'app deve fare. Esempio: “Se l'email esiste già, mostra un errore amichevole e suggerisci il login.”
Se stai usando Planning Mode in Koder.ai, queste basi contano ancora di più perché il piano diventa la sorgente per prompt ripetuti. Job chiari, un piccolo modello dati, permessi espliciti e regole di successo testabili mantengono ogni nuova schermata allineata col resto.
Checklist rapida e prossimi passi
Prima di costruire, fai un rapido controllo sulla tua specifica su una pagina. Lo scopo è rimuovere i buchi che costringono un build AI a indovinare. Quegli indovinelli diventano riscritture.
Ecco un controllo veloce di completezza:
- Users: ogni tipo di utente ha un obiettivo chiaro e una nota “chi può fare cosa” (create, view, edit, delete).
- Jobs-to-be-done: ogni job parte da un trigger e termina con un risultato verificabile.
- Entities: ogni sostantivo nei job è supportato da un dato (anche solo nome, stato e timestamp).
- Schermate e flussi: ogni job mappa a un percorso semplice (schermata iniziale, azione chiave, conferma).
- Edge cases: hai scritto almeno 5 cose che possono andare storte (stato vuoto, input non valido, duplicati, permessi, rete lenta/offline).
Se vuoi un'idea di punteggio semplice, valuta ogni area da 0 a 2:
- 0: mancante o vago
- 1: presente ma poco chiaro
- 2: chiaro abbastanza per costruire
Punta ad almeno 7 su 10 prima di generare. Se Entities o Edge cases sono sotto 2, sistemali prima: causano più churn.
Dopo la prima build, verifica l'app rispetto a ogni job-to-be-done e marca le discrepanze. Fai uno snapshot prima di ogni modifica. Se una nuova iterazione peggiora le cose, torna indietro e prova una modifica più piccola.
Se usi Koder.ai (koder.ai), Planning Mode è un posto pratico per tenere questa specifica su una pagina come “fonte di verità” e rigenerare solo ciò che è cambiato invece di riscrivere tutto a mano. Mantieni la specifica aggiornata via via che procedi. Quando accetti un cambiamento nell'app, aggiorna la specifica lo stesso giorno. Se rifiuti un cambiamento, annota perché, così il prossimo prompt resta coerente.
Domande frequenti
Cos'è “Planning Mode” e perché dovrei usarlo prima di costruire?
Planning Mode è una breve pausa in cui annoti le decisioni chiave prima di generare schermate e codice. L'obiettivo è la coerenza: gli stessi utenti, flussi e nomi dei dati in UI, backend e database, così non riscrivi tutto ogni volta che il sistema indovina in modo diverso.
Cosa dovrebbe contenere un modello di specifica su una pagina?
Inizia con una frase obiettivo, poi completa quattro blocchi:
- Users (2–3 tipi)
- Jobs-to-be-done (3–7 righe focalizzate sul risultato)
- Entities (nomi principali + pochi campi)
- Edge cases + non-goals (cosa può rompersi e cosa resta fuori)
Se non ci sta su una pagina, elimina feature per la v1.
Come scelgo i ruoli utente giusti senza complicare tutto?
Tieni pratico e basato sull'intento. Nomina pochi tipi di utenti e cosa vogliono ottenere.
Esempio: “Owner/Staff che crea appuntamenti” è più chiaro di “Admin”. Se non riesci a spiegare cosa fa un ruolo in una riga, è probabilmente troppo vago.
Come scrivo jobs-to-be-done che un builder AI può davvero seguire?
Usa un formato fisso in modo che ogni job sia testabile:
- “Quando [situazione], voglio [azione], così posso [risultato].”
Poi aggiungi una breve definizione di fatto (cosa deve essere salvato/mostrato). In questo modo il builder non inventa passaggi o schermate a caso.
Quanto dettagliata deve essere la sezione Entities per una MVP?
Elenca le “cose che l'app ricorda” in linguaggio normale, poi dai a ciascuna 3–7 campi che userai davvero nelle schermate.
Esempio: Appointment: ora d'inizio, durata, stato, servizio, cliente. Se un campo non serve a un job o a una schermata, lascialo fuori per la v1.
Devo descrivere relazioni e regole dei dati o basta elencare le entità?
Descrivi le relazioni con frasi semplici:
- “Un cliente può avere molti appuntamenti.”
- “Ogni promemoria appartiene a un appuntamento.”
Aggiungi poche regole base (campi obbligatori, unici, default). È di solito sufficiente per mantenere liste, form e filtri coerenti.
Quante schermate e flussi dovrei definire nella prima versione?
Un buon punto di partenza sono 3–6 schermate che permettono di completare il lavoro principale:
- Sign in (se serve)
- Lista principale
- Pagina dettaglio
- Form Create/Edit
- Impostazioni (opzionale)
Scrivi anche un breve “happy path” (start → azione → salva → conferma) così il flusso non deraglia.
Quali edge case vale la pena elencare in una specifica su una pagina?
Sono i casi in cui l'uso reale rompe il percorso felice. Scrivi i 5–10 più probabili:
- duplicati
- informazioni mancanti / stati vuoti
- errori di permessi
- conflitti (due modifiche)
- fallimenti / timeout
Per ciascuno indica il comportamento atteso (blocca + messaggio, salva bozza, ritenta, ecc.).
Come trasformo la specifica su una pagina in prompt che restano coerenti?
Converti ogni blocco in un'istruzione breve che il builder può eseguire e verificare.
Sequenza semplice:
- Costruisci modello dati + API dalle Entities.
- Costruisci schermate dai Screens/Flows.
- Verifica rispetto alla specifica completa e elenca le discrepanze.
Così eviti un unico prompt enorme che è facile da fraintendere.
Quando cambio idea, come aggiorno l'app senza rompere tutto?
Aggiorna prima la specifica, poi rigenera solo ciò che è cambiato.
Esempio: “Aggiungi l'entità Subscription con i campi X/Y; aggiorna le API e le schermate interessate; riesegui la validazione.” Tenere la specifica come fonte di verità evita modifiche sparse e incoerenti.