- Spezza il registro delle decisioni in docs/decisions/DD-XXX.md, con indice - Ripulisce DATABASE.md dalla storia delle migration e aggiunge la sezione Lettura - Riduce PROJECT_STATE.md a una pagina; la procedura di allestimento passa in OPERATIONS.md - Aggiunge OPERATIONS.md, GLOSSARIO.md, trappole note e checklist in ARCHITECTURE.md - Sintetizza la copertura test di badge.md e documenta docs/archive - Allinea AGENTS.md, README.md e la regola Cursor (tolto l'obbligo di develop, in contrasto con DD-019) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
1.3 KiB
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:assertfunziona e non aggiunge dipendenze (vedi test/README.md).
Conseguenze
- La logica di dominio va tenuta separabile dagli hook (
*-core.ts), altrimenti non è testabile intest/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.