# DD-020 — Una funzione modificata senza test non è finita **Data:** 4 settembre 2026 **Stato:** Accettata **Contesto** Con `main` come branch di lavoro (DD-019) non c'è più un ambiente di prova tra il codice e i giocatori. La suite in `test/` esisteva già ma scriverla era di fatto facoltativo, e i difetti trovati dai test sono arrivati a posteriori (la sessione Scout Live che non scadeva mai, le serie di presenze ferme a zero per settimane). **Decisione** Chi aggiunge o modifica una funzione scrive o aggiorna il test nello stesso lavoro, e i test devono essere verdi prima di consegnare. Non si commenta un test che fallisce né si indebolisce un'asserzione per farla passare: se il comportamento voluto è cambiato, si aggiorna il test dicendo perché. **Alternative scartate** - Test solo sui moduli critici → il confine «critico» si sposta a ogni fretta. - Introdurre un framework di test → la suite bun con `node:assert` funziona e non aggiunge dipendenze (vedi [test/README.md](../../test/README.md)). **Conseguenze** - La logica di dominio va tenuta separabile dagli hook (`*-core.ts`), altrimenti non è testabile in `test/unit/` senza rete. - Le modifiche costano un po' di più; le regressioni in produzione costano di più. **Riesame** Se comparisse un ambiente di staging stabile che rende superflua parte della copertura.