Vai al contenuto

Convenzioni di Sviluppo

Lingua

Cosa Lingua
UI (testi, label, messaggi) Italiano — sempre tramite t('chiave') di i18next
Codice (variabili, funzioni, classi, tipi) Inglese
Commenti nel codice Italiano
Commit Git Italiano
Documentazione Italiano

Nessuna stringa inglese hardcoded nell'UI

Qualsiasi testo visibile all'utente deve passare per t('chiave'). Non usare mai stringhe inglesi hardcoded nei componenti React.


Annotazioni Codice Critico

I file che gestiscono sicurezza, isolamento dati o logiche finanziarie complesse portano:

/**
 * @ai-critical
 * @ai-read-before-modify manifest2026/skills/finance/PLAFOND_NEXI.md
 * @ai-test-required finance.service.spec.ts
 */

Segnala agli agenti AI e agli sviluppatori di leggere la documentazione prima di modificare.


Branch Strategy

main           → codice stabile, approvato — mai commit diretti
dev            → integrazione continua
feature/[nome] → nuova funzionalità
fix/[nome]     → correzione bug
hotfix/[nome]  → emergenza produzione (richiede keyword HOTFIX)
restore/[data] → ripristini da commit precedenti

Formato commit: feat: descrizione in italiano / fix: descrizione / refactor: descrizione


Layout Standard (Pagine React)

Ogni pagina applicativa usa questo wrapper:

<div className="w-full h-full p-4 md:p-6 lg:p-8 animate-in fade-in duration-500">
  {/* Header: titolo con gradient + descrizione + bottoni azione */}
  {/* Content: card con rounded-xl, shadow-sm, border */}
</div>

Vietato

  • h-screen — causa problemi di layout nel contesto SPA
  • fixed — interferisce con la shell dell'applicazione
  • Valori px hardcoded per container principali

Build Sicura

npm-build-fe   # build frontend (Vite)
npm-build-be   # build backend (NestJS)

Mai usare npm run build direttamente

Può causare freeze/deadlock su questo ambiente. Prima di qualsiasi avvio: bash scripts/kill_zombie.sh


Zero-Trust Data Rule

// Obbligatorio in OGNI query che riguarda dati di business
where: {
  tenantId: user.tenantId,  // sempre
  ownerId: user.id           // per entità private utente
}

Dipendenze npm

Approvazione richiesta

Non aggiungere pacchetti npm senza proporre e ricevere approvazione esplicita. Ogni nuova dipendenza deve essere discussa prima.