- 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>
50 lines
4.1 KiB
Markdown
50 lines
4.1 KiB
Markdown
# Documentazione CrAPP
|
|
|
|
Indice della documentazione ufficiale del progetto. Ogni file risponde a una domanda
|
|
precisa: se l'informazione che cerchi non è nel file indicato, probabilmente non esiste
|
|
ancora e va **prima documentata** (vedi [DD-002](decisions/DD-002.md)).
|
|
|
|
## Dove sta cosa
|
|
|
|
| Documento | Risponde a |
|
|
| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------- |
|
|
| [ROADMAP.md](ROADMAP.md) | Cosa è fatto, cosa è previsto, cosa resta un'idea |
|
|
| [ARCHITECTURE.md](ARCHITECTURE.md) | Com'è fatta l'app: stack, struttura del codice, flusso di sviluppo |
|
|
| [DATABASE.md](DATABASE.md) | Quali tabelle esistono, a cosa servono, chi le usa |
|
|
| [decisions/](decisions/README.md) | Perché abbiamo scelto così, cosa abbiamo escluso e quando riaprire la scelta |
|
|
| [PORTABILITA.md](PORTABILITA.md) | Cosa lega l'app a un fornitore e cosa no, come spostarla su server proprio (backup/disaster recovery incluso) |
|
|
| [EFFICIENZA_CLOUD.md](EFFICIENZA_CLOUD.md) | Come tenere basso il consumo cloud: cache, query, push |
|
|
| [GLOSSARIO.md](GLOSSARIO.md) | Cosa significano i termini del dominio (slot, rosa, convocati, CSI, pagelle…) |
|
|
| [OPERATIONS.md](OPERATIONS.md) | Ambienti, variabili d'ambiente, migration, rilascio e allestimento di un ambiente nuovo (login Google, primo admin) |
|
|
| [WORKER_EMAIL.md](WORKER_EMAIL.md) | Come si installa, si gestisce e si diagnostica il worker che invia le notifiche per email |
|
|
| [CHANGELOG.md](CHANGELOG.md) | Cosa è cambiato e quando |
|
|
| [archive/](archive/README.md) | Materiale storico non più in uso: non è fonte di verità |
|
|
| [modules/](modules/) | Specifica funzionale di ogni modulo, una per file |
|
|
|
|
Le regole vincolanti per gli assistenti AI stanno in [AGENTS.md](../AGENTS.md);
|
|
lo stato corrente del lavoro in [PROJECT_STATE.md](../PROJECT_STATE.md) (una pagina: a che punto
|
|
siamo, non la cronologia).
|
|
|
|
## Ordine di lettura
|
|
|
|
Prima di modificare il codice, nell'ordine: questo indice → `ROADMAP.md` → `ARCHITECTURE.md`
|
|
→ `DATABASE.md` → il documento del modulo interessato in `modules/` → solo le decisioni
|
|
(`decisions/DD-XXX.md`) che il modulo o l'indice richiamano, non tutte.
|
|
|
|
## Regole di manutenzione
|
|
|
|
Ogni informazione ha **una sola casa**, per evitare che le copie divergano:
|
|
|
|
- l'elenco delle funzionalità (fatte e previste) sta solo in `ROADMAP.md`;
|
|
- `CHANGELOG.md` registra _quando_ qualcosa è stato rilasciato, non ripete l'elenco: segue
|
|
il formato Keep a Changelog, con il lavoro non ancora rilasciato sotto `[Non rilasciato]`
|
|
e le voci divise per categoria (Aggiunto, Modificato, Sicurezza…);
|
|
- il lavoro in corso sta solo in `PROJECT_STATE.md`, che rimanda alla roadmap per il resto;
|
|
- lo schema del database sta solo in `DATABASE.md`, allineato alle migration in
|
|
`supabase/migrations/`: una tabella nuova si documenta nella stessa modifica che la crea;
|
|
- le motivazioni stanno solo in `decisions/`, un file `DD-XXX.md` per decisione; per
|
|
aggiungerne una si copia [\_template-dd.md](_template-dd.md) e si aggiorna l'indice.
|
|
|
|
Convenzioni di scrittura: un solo titolo `#` per file (le sezioni interne partono da `##`),
|
|
niente `---` come riempitivo tra i paragrafi, tabelle al posto degli elenchi ripetitivi.
|