Files
plm-lottery/docs
davideandClaude Sonnet 5.5 9520c80dcf Close the smaller state inconsistencies (B-96, BET-02, BET-07, WDR-01, WDR-15, TX-16, TX-18, TX-27, TX-29, DEP-15, DEP-16, AUD-30, AUD-46, DAT-22)
- bet/withdrawal routes read listener.client after taking the user lock
- a reduced full-balance withdrawal is checked against the minimum again
- a bet covered only by pending balance answers balance_pending_confirmation
- a recovered bet/withdrawal/payout writes bet_placed/withdrawal_sent/payout_sent
- an abandoned payout clears winner/fee/reserve amounts with payout_txid
- the reconciler pings SSE only for rows it changed
- closing_stalled every 30 minutes past the deadline; closing_waiting_since on /rounds/current
- one refresh per user at a time; a failed refresh no longer ends the Electrum session

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-18 01:08:14 +02:00
..

Documentazione di PLM Lottery

Questa cartella è la fonte di verità del progetto: si lavora docs-first (prima si scrive o si modifica la documentazione, poi il codice) e ogni informazione ha un solo proprietario (SSOT). Questo file è l'indice: da qui si raggiunge tutto il resto.

I tre principi

  1. Docs-first. Nessuna modifica di comportamento parte dal codice. Si modifica il requisito (o si scrive l'ADR, se è una scelta nuova), poi si implementa, poi si testa. Spec, codice e test entrano nello stesso commit.
  2. SSOT — un solo proprietario per ogni informazione. Il perché di una scelta sta in un ADR; il cosa verificabile in un requisito (PREFISSO-NN) del documento di dominio; il come nel codice; la cronologia dei difetti in storico-bug.md. Gli altri documenti rimandano all'ID, non ripetono il testo. Se due documenti dicono cose diverse, vince la specifica e si corregge l'altro.
  3. Un ADR per ogni funzionalità. Ogni funzionalità nuova inizia con un ADR in adr/ (modello: adr/TEMPLATE.md) che registra contesto, decisione, alternative scartate e conseguenze, e ne elenca i requisiti.

Dove si trova cosa

Domanda Dove
Perché è fatto così? Quali alternative sono state scartate? adr/ — indice per area e tabella funzionalità → ADR
Cosa deve fare esattamente il software? I documenti di dominio qui sotto (requisiti con ID stabile)
Quali limiti abbiamo accettato? limiti-noti.md (LIM-nn)
Che bug sono stati trovati/corretti? Quali restano aperti? storico-bug.md; i soli aperti in ../BUGS.md
In che ordine si implementano le correzioni aperte? piano-correzioni.md
Come si modifica la documentazione/il codice? processo-di-modifica.md
Come si installa, si avvia, si usa? Guide operative qui sotto

Specifica (documenti di dominio)

Punto d'ingresso narrativo: come-funziona.md.

Documento Prefisso Contenuto
registrazione-e-depositi.md REG, DEP Account, indirizzi, depositi, saldo
scommesse-e-prelievi.md BET, WDR Scommesse e prelievi
ciclo-di-vita-del-round.md RND Apertura, chiusura, estrazione, pagamento
transazioni-e-riconciliazione.md TX Ciclo di vita delle transazioni, RBF, riconciliazione
connessione-electrum.md ELC Accesso alla rete PLM e difese
architettura.md ARC Struttura del codice, processi, frontend, test
modello-dati.md DAT Tabelle, campi, stati, vincoli
api.md API Endpoint, risposte, codici di errore
sicurezza.md SEC Fiducia, chiavi, autenticazione, limiti sui tentativi
audit-log.md AUD Catalogo degli eventi di audit
operativita.md OPS Backup, riavvii, incidenti

Decisioni, limiti, storia

Documento Prefisso Contenuto
adr/ ADR Una decisione di progetto per file (53 al momento)
limiti-noti.md LIM Limiti accettati consapevolmente
storico-bug.md B-nn Tutti i bug trovati e corretti
piano-correzioni.md — Ordine di implementazione delle correzioni aperte

Guide operative (senza requisiti)

setup.md · running-the-server.md · guida-utente.md · guida-admin.md. Si aggiornano quando la specifica cambia qualcosa di visibile.

Lingua

La documentazione di docs/ è in italiano, per scelta esplicita; tutto il resto del repository (codice, commenti, commit, CLAUDE.md, BUGS.md) è in inglese.