- 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>
32 lines
1.3 KiB
Markdown
32 lines
1.3 KiB
Markdown
# 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.
|