This commit is contained in:
davide committed 2026-09-28 15:36:38 +02:00
1 parent 61efbb0e37
commit c5e7daa9c7
15 files changed
+4514 -1172

No files matched your search

+38 -2
View File
@@ -11,8 +11,9 @@ Ogni regola verificabile ha un **identificativo stabile**, nella forma
seguito dai riferimenti all'implementazione e, dove esistono, ai test:
```markdown
- **[RND-11]** Alla scadenza il round passa subito a `closing`: da quel momento
nessuna scommessa è più accettata.
- **[RND-11]** Al primo passo dello scheduler successivo alla scadenza il round
passa a `closing`; le scommesse sono però rifiutate già dall'istante della
scadenza ([BET-04]).
*Codice:* `app/rounds/scheduler.py:RoundScheduler._tick` ·
*Test:* `tests/unit/test_scheduler.py`
```
@@ -28,6 +29,41 @@ Regole della convenzione:
mai numeri di riga (cambiano a ogni modifica).
- Il testo descrittivo che non contiene regole (introduzioni, spiegazioni,
esempi) non ha identificativo.
- **Un solo proprietario per regola.** Ogni regola ha l'identificativo in un
solo documento; gli altri documenti che la citano rimandano a quell'ID
invece di ripeterla con un ID proprio. Il documento di dominio (round,
scommesse, transazioni…) è proprietario del comportamento, `DAT` dello
schema, `SEC` delle soglie di sicurezza.
- **Niente formulazioni vaghe nelle regole.** "Circa", "normalmente", "prima o
poi" non compaiono in un requisito: si scrive la condizione esatta, con il
nome della costante.
### Requisiti non ancora implementati
La specifica può essere più avanti del codice: è il caso normale fra il passo 1
e il passo 3 del ciclo qui sotto. Un requisito che il codice non soddisfa
ancora porta, subito dopo i riferimenti, una riga di stato e una che dice cosa
fa il codice oggi:
```markdown
- **[RND-33]** L'altezza del blocco di estrazione è fissata all'ingresso in
`drawing` come `tip_at_close + 1` e non cambia più.
*Codice:* `app/rounds/scheduler.py:RoundScheduler._close_and_draw` ·
*Test:* —
*Stato:* da implementare (B-73) · *Oggi:* si usa la punta vista al primo
controllo utile, che può essere un blocco successivo.
```
- *Codice* indica dove andrà l'implementazione (il file o la funzione
esistente più vicina); *Test* è `—` finché il test non esiste.
- Il B-nn rimanda alla voce di [BUGS.md](../BUGS.md) che descrive la
correzione; l'ordine di implementazione è in
[piano-correzioni.md](piano-correzioni.md).
- Quando il codice viene implementato, nello stesso commit si tolgono le righe
*Stato* e *Oggi* e si completano *Codice* e *Test*. `git grep "da
implementare"` elenca in ogni momento tutto ciò che manca.
- Un requisito modificato (non nuovo) mantiene il suo identificativo: il testo
descrive il comportamento atteso, *Oggi* quello attuale.
### Prefissi