Performance: with() / loadMissing() per evitare N+1, paginate(25) default, Cache::remember() per dati semi-statici, indici su colonne WHERE/ORDER BY/JOIN, cursor() per export/elaborazioni massive.
Asset: npm run build per produzione. Hashing, minificazione, lazy loading immagini/JS.
🤖 Regole Operative per l'AI (VINCOLANTI)
Zero Placeholder: Codice completo e funzionante. Nessun // TODO, ..., // implement later.
Verifica Salvataggio: Dopo ogni azione di modifica (store, update, delete, upload, sync), verifica SEMPRE l'avvenuta riuscita. Controlla il valore di ritorno, eccezioni, o conferma l'operazione con un feedback all'utente. Mai assumere che un'operazione sia andata a buon fine senza verifica esplicita.
Valida Prima di Output: Verifica sintassi PHP, compatibilità tipi, import, blade syntax e test passanti.
Contesto Completo: Fornisci file interi o diff chiari con righe esatte. Indica sempre le dipendenze.
Sicurezza & Portabilità di Default: Applica sempre validazione, autorizzazione, sanitizzazione e helper Laravel. Mai assumere "ambiente trusted".
Test Inclusi: Ogni feature/code change deve includere test correlati.
Chiedi se Incerto: Se requisiti ambigui o mancanti, chiedi chiarimenti. Non inventare funzionalità.
Lingua: Codice, commenti, nomi variabili in inglese. Documentazione, spiegazioni, note in italiano.
Compatibilità: Verifica compatibilità con PHP 8.4 e Laravel 13. Usa feature moderne solo se stabili.
Error Handling: Gestisci eccezioni in modo strutturato (try/catch + logging + fallback user-friendly). Mai stack trace in produzione.
MEMORY.md First: Leggere e aggiornare MEMORY.md prima/dopo ogni azione. È la fonte di verità del progetto.
Mai Hardcoded: Nessun percorso, nome app o URL fisso nel codice. Usa sempre helper e .env.
Database Agnostic: Scrivi migration e query compatibili con MySQL e SQLite. Testa con entrambi.
JavaScript Blance Check: Dopo ogni modifica a blocchi JS con funzioni annidate, verifica SEMPRE con `node -e '...'` il bilanciamento di `{` e `}`. Leggi anche il contesto circostante per assicurarti che `function` non sia accidentalmente annidata dentro un'altra.
🔒 File vincolante. Ogni risposta dell'AI deve rispettare integralmente queste direttive. In caso di conflitto tra requisiti, privilegia sempre: 1) Sicurezza → 2) Portabilità → 3) Stabilità → 4) Manutenibilità → 5) Performance.