Il test leggeva URL e chiavi da .env (progetto remoto) e tentava scritture
anonime lì. Ora usa statoLocale() come gli altri test che scrivono.
README aggiornato: tolta l'eccezione alla regola sulle scritture.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Gli avvisi di salute riguardano l'estrazione prima dell'unione, non il graph.json;
styles.css manca perché graphify non ha un estrattore CSS.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Collega i documenti alle RFC che nominano, unisce con archi describes (INFERRED)
i concetti che hanno lo stesso nome esatto di un simbolo, e trova il nodo del
documento anche quando l'estrazione gli ha dato un id diverso (25 documenti,
tra cui DD-026, prima restavano senza archi).
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Cita con percorso completo i 28 file di src/ che nessun documento nominava e
aggiunge la riga Codice a 21 decisioni, ricavata dai file che le citano.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
scripts/graphify-link-docs.ts aggiunge gli archi references dai percorsi e dai
simboli citati nei .md ai file e ai simboli del codice. .graphifyignore toglie
le skill dal grafo. Documentato in docs/GRAFO.md.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Corregge l'avvertenza sbagliata: graphify update . non sovrascrive i nodi
semantici, solo i .md nuovi restano a livello di struttura.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
useGiocatoreCorrente (alias di useIo) passa da user-store a rosa: user-store
non importa più rosa. Nessun cambio di comportamento.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Aggiunge docs/GRAFO.md (uso, rigenerazione, limiti), lo indicizza in
docs/README.md, richiama il grafo in AGENTS.md e CLAUDE.md e ignora
graphify-out/, che si rigenera.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Copia di ~/.claude/skills/graphify (graphifyy 0.9.109) in .claude/skills,
accanto a apple-design.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Layout corretto sugli schermi stretti (360-402 px) e Ace, Attacchi, Muri e Punti dai +
dello scout in Squadra e Profilo. Nessuna migration.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Squadra → Stats: punti, ace e muri di squadra sommano i + delle valutazioni scout di tutte
le partite. Profilo → Season: al posto di «Turni palloni» compaiono Attacchi, Muri, Ace e
Punti (totale) del giocatore. Le partite del metodo precedente contano con le azioni.
DD-008 aggiornata: dati solo informativi, fuori da badge e classifiche.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Tabella scout senza larghezza minima (nome a capo, colonne compatte), griglie con
min-width 0, niente scroll orizzontale della pagina, campi a 16px contro lo zoom iOS.
Fixes#12
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Changelog aggiornato con le modifiche dal tag v1.6.0: scout leggibile
nella pagina partita, classifica cacche completa, pagelle senza assenti,
pagina partita a sezioni a scomparsa. Nessuna migration.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Formazioni, badge, sondaggio, pagelle, scout e rosa diventano sezioni a
scomparsa; aperti all'inizio solo rosa e presenze e il sondaggio nella
sua finestra. Le formazioni indicano la fonte «Livescore CSI», lo scout
il numero di valutazioni. Titoli allineati a 20px e niente vuoto sotto
le sezioni chiuse.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Nell'elenco da votare non compaiono i convocati che hanno risposto
«assente» o «infortunato» a quella partita; per le altre partite
restano votabili come prima. Solo filtro di interfaccia.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
La sezione «Scout» mostra le valutazioni − / + nell'app, non solo nel CSV:
percentuale di + e conteggi per fondamentale, selettore Totale / Set 1-5,
tabella per giocatore e guida (i) su come leggere i dati. Le azioni
(punti, ace, muri, errori) restano in un blocco a parte per le partite
scoutate col metodo precedente. Il CSV resta per gli admin.
Aggiunge sintesiValutazioni() in scout-store con test.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Elenco con posizioni a pari merito senza salti, barra proporzionale
e riga personale evidenziata, anche a sondaggio chiuso.
Sezione «Report tecnico» della partita rinominata «Scout».
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Nessuna schermata crea più azioni, quindi l'elenco restava sempre vuoto. Aggiornati modulo e
changelog.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Modulo Scout Live riordinato (schermata, salvataggio, export, limiti), glossario e
collegamento CSI: il ripiego sullo scout vale solo per le partite con punteggio.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Il messaggio dopo «Fine partita» dice solo «Partita salvata» (il voto MVP apre 2 ore dopo
l'inizio, non dipende dallo scout). I due test che pretendevano una gara CSI già giocata
tollerano l'inizio stagione (uno si salta). «Calendario ufficiale» passa in «Fatto» nella
roadmap; PROJECT_STATE conta le migration fino alla m39.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Lo stato in corso si salva a ogni tocco (in coda, con avviso se fallisce). «Chiudi set» e
«Fine partita» funzionano con le sole valutazioni; le partite senza punteggio (haPunteggio) non
compaiono come risultato in Home, Classifica e pagina partita. Il pulsante di ripresa riconosce
valutazioni e set chiusi.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Il titolo diventa «Selezione giocatore», con un selettore (componente Select dell'app) per
ordinare per cognome o per numero. Nel riquadro di ogni giocatore, al posto dei punti delle
azioni (sempre 0), compaiono i + del set in corso senza la ricezione.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Modulo, DD-053, changelog e stato del progetto descrivono la schermata senza tasti dei punti,
tabellone e blocco avversario, e il limite attuale su chiusura di set e partita.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Per ogni convocato un − o un + su battuta, ricezione, attacco e muro, separato per set e
fuori dal punteggio (DD-053, migration m39: colonna scout_partite.valutazioni). Lo stato in
corso le salva in scout_live.stato; il CSV admin ha la tabella per set.
Nella pagina dello scout tolti il blocco avversario/campo, i tasti delle azioni e il
tabellone del punteggio; il titolo della sezione mostra cognome e numero del giocatore.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Nuovo project_id (933) e team_id (3878) sul portale Livescore. La Coppa non
esiste quest'anno: CSI_COPPA_PROJECT_ID diventa null e la route non la scarica
piu'. Lo storico 2025/26 non viene piu' mostrato. Test live adattati a inizio
stagione (nessuna gara giocata), doc e changelog aggiornati.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Voto MVP definitivo, a pari merito, segreto e a tempo; nome del votato dalla rosa. PROJECT_STATE
segna che m35-m38 restano da applicare su Supabase (db push rinviato) e il lavoro su feature/gara.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Integrazione (permessi, permessi-allenatore, mvp-badge, s-tiebreak-badge), unit (mvp-voti) e helper
delle date di Roma. Con le parità l'MVP vale per tutti i pari merito.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Il pannello chiede conferma e non permette di cambiare il voto; con una parità in testa gli MVP
sono più d'uno; i conteggi vengono dalla vista mvp_voti_anonimi e il proprio voto dalla tabella;
il voto si chiude 24 ore dopo l'apertura.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Stesso difetto dell'MVP: votato_nome lo scriveva il client. Riusa il trigger della m37.
Da applicare su Supabase con db push (non ancora fatto).
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Lettura diretta di mvp_voti solo del votante e degli admin, conteggi dalla vista
mvp_voti_anonimi; trigger che riempie votato_nome dalla rosa; il voto chiude 24 ore dopo
l'apertura. Da applicare su Supabase con db push (non ancora fatto).
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
voto_mvp_consentito() controlla partita, presenza (presente o ritardo) di votante e votato e
l'attesa di 2 ore dall'inizio. Da applicare su Supabase con db push (non ancora fatto).
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Il giocatore può solo inserire il proprio voto: UPDATE e DELETE restano agli admin.
Da applicare su Supabase con db push (non ancora fatto).
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Il pulsante delle schede di partita, allenamento ed evento dice «Apri su Maps».
CHANGELOG con la sezione 1.4.2 (m34 applicata in produzione il 26/10/2026),
PROJECT_STATE e package.json/package-lock alla 1.4.2.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Colonna facoltativa eventi_app.link_maps con CHECK che accetta solo URL https di
Google Maps. Campo nel form di /eventi (admin e allenatori), validazione con
linkMapsValido() e test. Le schede di partita, allenamento ed evento mostrano
«Apri su Google Maps» solo se il link c'è; card e notifiche non cambiano.
Documentazione: calendario.md, DATABASE.md, CHANGELOG.
La migration m34 non è ancora applicata in produzione: va fatto db push prima di
rilasciare questo codice, che legge la nuova colonna.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>