# Stato dei lavori Ultimo aggiornamento: 25 ottobre 2026. Da leggere insieme a `PROGETTO.md` all'inizio di ogni sessione. ## Da riprendere (chiusura del 25 ottobre, notte) Online su 50037.manzolo.it tutto fino agli effetti ambientali di Codex. Aperto, da decidere con Andrea: - **Chi racconta**: Andrea vive il 2007 o lo racconta da adulto? Al bar c'è ancora il segnaposto «Questo lo sa solo Andrea»; le battute sul futuro (padel, Locura) dipendono da questa scelta. - **Il furto**: un piccolo colpo di scena durante l'indagine (testimonianza, contraddizione); reazioni del paese. - **Enigmi con gli spiriti** (scrivano del Trebbio, leone, San Pietro: lo stile per altri spiriti c'è) e **aneddoti segnaposto** da far sostituire a Francesco Bacci e agli amici. - **Frasi che promettono enigmi inesistenti** (soldi per il bar, moduli al Comune, porte «interessanti»): da togliere. - **Consensi** delle persone vere nominate o ritratte (Gianna, Pappia, i sette ritratti dei Ringraziamenti). - **Secondo capitolo**: le gare (passamano, carrette, caccia al tesoro, bandierine/lavanderine) e forse lì la scelta del rione; musica delle gare. - Il **leone fantasma** somiglia un po' ai leoni dei cartoni: Andrea non l'ha ancora commentato. ## Dove siamo arrivati - **Briscola all'oratorio (26 ottobre)**: alle tavolate siede «Il giocatore di carte» (segnaposto, [DA ANDREA: chi è], sprite e battute provvisorie di Codex). Parlandoci si sceglie il mazzo (toscane o napoletane) e il livello («Alla bona», «Seria», «A fassi male»), poi briscola a due fedele alle regole, conteggio delle prese a fine partita e rivincita. Facoltativa: nessun flag serve alla soluzione. Motore `src/engine/briscola.js` (Claude), disegno `briscola-render.js` (Codex), dettagli e taratura in `docs/BRISCOLA.md`. Prova: `npm run browser:briscola`. **Tressette ai 21** (stesso giocatore, «Un tressette ai 21?»): in quattro a coppie, busso/striscio/volo e accuse, motore e tavolo di Claude, regole e taratura in `docs/TRESSETTE.md`, prova `npm run browser:tressette`. **Scopa agli 11** («Una scopa?»): carte, mattoni (o denari), settebello, primiera e scope, presa a scelta fra più possibili; `docs/SCOPA.md`, prova `npm run browser:scopa`. Con la scopa i giochi di carte sono finiti (decisione di Andrea, 26 ottobre). Tressette rivisto dopo la revisione critica di Codex (in `docs/TRESSETTE.md`). - **Multimedia (25 ottobre, modifiche locali)**: il libro sfogliabile già presente conserva immagini, battute e riapertura dall'inventario; il fruscio ora segue il volume degli effetti, non quello delle voci. Nuovi paesaggi sonori sintetizzati con Web Audio (`src/engine/soundscape.js`, profili in `src/story/soundscapes.js`): vento, acqua, uccelli di giorno e grilli di sera, campane, bicchieri, gocce e scricchiolii distanziati. In **Pausa → Ambiente ed effetti** si regola il volume, salvato nel browser. Muto, pausa e pagina nascosta fermano anche i suoni già avviati. La **torcia nella fessura** apre un primo piano: mouse, tocco/trascinamento o frecce spostano la luce; Invio aiuta a cercare il prossimo dettaglio. Pietra → palio → occhi; la musica si abbassa durante la ricerca. «Torna fuori»/Esc permette di riprovare; soltanto dopo gli occhi «Continua» avvia la conclusione. Nessun progresso parziale viene salvato. La tela usa la foto vera del 2007, ritagliata durante il disegno. Controllo mirato: `npm run browser -- --media-only`; il collaudo normale include anche queste prove. Verificati `npm test` e `npm run browser`: soluzione completa, salvataggi, libro su desktop/telefono, torcia con mouse/tastiera/tocco/trascinamento, pausa e muto, segnale Web Audio senza saturazione. Schermate in `/tmp/regolo-shots/media-*.png` e `/tmp/regolo-shots/05b-fessura-*.png`. I copioni video sono aggiornati ai gesti richiesti dalla torcia; il montaggio audio da file continua a includere solo musica e voci (gli effetti Web Audio non vengono esportati dal copione). - **Ambienti animati (25 ottobre)**: alle prove già presenti (bandiere del campeggio, fascio di luce nella Pieve, ombre al Bosco ai Frati) si aggiungono 51 dettagli nelle altre 35 scene. Configurazione in `src/story/ambience.js`, richiamata da `story.js`; nuovi disegni in `src/engine/ambient.js`: piccioni in piazza, merli sui prati, gatto nel vicolo, farfalle, libellula sul ponticino, falena alla festa, increspature nelle pozze e nel torrente, gocce della fontanella, tende, passaggi dietro le vetrate, ombre di nuvole sul sentiero e sulle vigne. Riutilizzati anche ombre delle fronde, stoffe, finestre e lampioni. Le ombre delle fronde ora sono piccoli gruppi irregolari, senza gli ovali in fila che sembravano sassi. Tutte le 38 scene hanno almeno un effetto; quelli diurni si spengono di sera e gli animali fanno lunghe pause. Acqua, tende e vetrate usano ritagli locali; nessun asset aggiunto, nessun nuovo hotspot o flag narrativo. Le animazioni complesse di altalene/reti e il movimento isolato di grandi fronde restano da fare con elementi grafici separati: per ora quei luoghi hanno ombre e piccoli animali, senza deformare il fondale. Verificati `npm test`, `npm run browser` (partita completa e telefono), `npm run browser:effects` (38 scene × 3 fasi × 4 istanti, ritagli, giorno/sera, pause degli animali, salvataggio invariato). Le immagini di controllo sono in `/tmp/regolo-effects`; si rigenerano con `npm run browser:effects`. **Si gioca** in Docker su http://localhost:8080 (`make up`; Manzolo Rush è stato fermato per liberare la porta) e, **online dal 2026-10-23**, su https://50037.manzolo.it (50037 è il CAP di San Piero), finché non va su GitHub Pages. Si aggiorna con `make deploy`: pubblica l'ultimo commit, immagine costruita e provata sul PC e spedita al container `leggenda-regolo` di home-server (NPM centrale → NPM interno di home-server → container). - **Motore** (`src/engine/`): camminata con percorsi su aree concave, profondità, sette verbi + clic intelligente, clic destro / pressione lunga = guarda, inventario con "usa… con" e "dai… a", dialoghi a scelte (anche una tantum), salvataggio automatico con "Continua", fumetti sopra chi parla, impaginazione desktop e telefono. - **Scene con sfondi veri** (`assets/scenes/`), collegate come il paese a gradini (`PROGETTO.md`, «La mappa»): Piazza Colonna ↔ Pieve (livello 0) → Villa Adami (livello 1) → salita di Villa Adami con la casa del leone → Fortezza (fuori dalle mura) → sentiero → Castello del Trebbio. - **Altre scene** (ottobre 2026, dalle foto di Andrea con Codex): Via de' Medici, Oratorio, Ingresso del campeggio, Bosco ai Frati, viale dei cipressi. Schermata del titolo (Fortezza al tramonto col Regolo) e introduzione a righe sul panorama del Mugello. - **Musica** di Andrea (Suno) in `assets/audio/`: titolo e introduzione, paese, ricordi (Trebbio e fine); volume e muto. - **Andrea vero** dal foglio sprite (`assets/characters/`, `tools/slice_sprites.py` + `tools/prepare_character.py`): cammina, parla, si china a prendere, di spalle davanti alle porte. - **Storia di prova** (`src/story/story.js`): il palio è sparito, i vecchietti litigano sulle due leggende, la squama sotto la panchina, le impronte sotto la Fortezza → fine del prototipo. Il Trebbio fa da "psicologo": parlando con la torre si riceve un indizio in base ai progressi. - **Cartello d'apertura** «Manzolo (Poca) Art Presents» (5 s, si salta) prima del titolo. - **Voci** (`make voci`, XTTS-v2 sulla GeForce): 112 battute, cinque voci (Andrea, vecchietta, vecchietto, castello, leone); il fumetto dura quanto la voce, la musica si abbassa mentre si parla, il muto spegne anche le voci. Controllate tutte con Whisper il 2026-10-23. Il leone ora parla (battute provvisorie). - **Mappa** (pulsante in alto a sinistra o tasto P): i posti già visti, con le strade fra loro; un clic ci porta. Un posto nuovo entra con `map: [x, y]` nella sua scena (percentuali della pianta, disposta come «il paese a gradini»). - **Crediti** dal titolo e dalla fine (`story.credits`), dedica al Lele in testa; musichetta a 8 bit del cartello (`tools/jingle.py`). - **Primo indovinello**: la statua di San Pietro alla Pieve chiede quanti bastioni ha la Fortezza (la risposta la dà il bastione stesso); la chiave apre l'oratorio, che da lì resta aperto, e la chiave sparisce. Verbo **Butta**: solo gli oggetti `droppable` (per ora il libro), quelli che servono alla storia no. Pulsante **Pausa** (o Esc). - **Il libro della storia infinita** sulle tavolate dell'oratorio; le idee in attesa in `docs/IDEE.md`. - **Test**: `make test` (29 test, compresa la soluzione completa da `src/story/solution.js`) e `make browser` (partita completa con clic veri in Chromium, ripresa del salvataggio, telefono). ## Materiale ricevuto da Andrea (in `assets/raw/`, escluso da git) | File | Cosa | Uso previsto | | --- | --- | --- | | `piazza-colonna.png`, `fortezza-esterno.png`, `trebbio.png` | sfondi puliti 16:9 | già nel gioco | | `andrea-sheet.png` | foglio sprite di Andrea | già nel gioco | | `pieve-prova-1.png` | Pieve (con interfaccia e personaggio) | da rifare pulito 16:9 | | `andrea-arcu-prova-1.png`, `andrea-arcu-lele-prova-1.png` | Andrea (sinistra), l'Arcu (centro), il Lele (destra) | riferimento personaggi | | `passamano-prova-1.png`, `carretta-prova-1.png`, `vaglio-rena-prova-1.png` | le sfide del Palio | tavole illustrate; per giocarle servono versioni larghe e vuote | | `palio.png` | il premio con cornice dorata | **sbagliato**: il palio era un quadro dei ragazzi delle medie, senza cornice | | `piazza-prova-1.png`, `trebbio-prova-1.png`, `fortezza-prova-1.png` | prime prove | superate | I prompt fissi (stile, scene, foglio sprite) sono in `prompts/STILE.md`, escluso da git. ### Nuove fotografie e generatore - Le tre foto aggiunte in `assets/raw/temp/` sono archiviate senza modifiche in `assets/raw/foto/`: `pieve-dalla-salita.jpg`, `salita-villa-adami.jpg` e `da-fare/oratorio-pieve.jpg` (oratorio rimandato). - Geografia precisata da Andrea: dalla Pieve si sale lasciandola alle spalle, si sbuca a Villa Adami e si prende la salita verso la Fortezza. La seconda foto mostra il bivio presso Villa Adami, non le mura della Fortezza. - `tools/genera.py` prepara batch via Images Edit (`gpt-image-2`), master 1536×864, prompt in `prompts/backgrounds/`, registro e confronto in `assets/generated/`. Guida: `docs/GENERAZIONE_SFONDI.md`. Preparazione verificata senza chiamate API, con test offline e `--dry-run`; la generazione reale richiede conferma. - Generate le due vedute con lo strumento immagini integrato, dopo la preparazione: master in `assets/generated/`, copie a 640×360 e 64 colori in `assets/scenes/pieve-dalla-salita.png` e `assets/scenes/salita-villa-adami.png`. Prompt effettivi `prompts/backgrounds/*.integrated.txt`; provenienza nel registro. Da valutare prima di collegarle alla storia e definire camminata e hotspot. Il percorso API dello script è verificato con un client simulato, non con chiamate reali. ## Cosa manca ### Prossimi passi - **Revisione di Codex del 24 ottobre, parte tecnica fatta**: - **salvataggi a punti fermi**: si salva solo quando ogni sequenza è finita (`Game.commit`, `Game.savable`). Uscire a metà di una risposta o della casetta riporta a prima, e la squama presa resta salvata anche senza cambiare scena. Un test interrompe ogni passo della soluzione e della catena del ghiacciolo; - **Salva su file** (pausa) e **Carica** (titolo), per portare la partita su un altro dispositivo; - **cursore delle voci** («bla», 50% di partenza) accanto a quello della musica. Il muto zittisce subito la voce in corso, e la pausa la ferma e poi la riprende; - **col dito** un oggetto mancato di poco (circa 22 pixel di schermo) si prende lo stesso; i verbi in orizzontale vanno su due colonne; - **sfondi caricati per vicinanza** alla scena di partenza (o a quella salvata), tre alla volta; a gioco fermo non si ridisegna; - **`?debug`**: area calpestabile coi vertici numerati, hotspot con id, punti `at`/`talkAt`/`speakers`, coordinate del puntatore; Maiusc+clic segna e copia un punto, K copia il poligono, X azzera, G nasconde; - corretto: i crediti dal titolo restavano dietro il titolo. - seconda passata di Codex: **Carica** controlla versione e contenuto (`checkSave`) prima di sostituire il salvataggio del browser; col dito gli **oggetti piccoli** (sotto i 24×24) vincono sui grandi che li contengono (la squama sulla panchina); uno **sfondo fallito** si riprova dopo 2, 4 e 8 secondi, poi basta. - **Primo capitolo chiuso** (24 ottobre): squama e impronte portano a una fessura nel bastione; la torcia illumina un angolo del palio (l'omino con la maglia rossa e le braccia alzate, dal quadro vero: foto in `assets/raw/palio-2007-foto.jpg`, già descritto sul manifesto in piazza) e due occhi gialli che spariscono. La soluzione (40 passi, tragitti calcolati da `route`) passa per indovinello, oratorio e catena del ghiacciolo; il Trebbio ha un indizio per ogni tappa della torcia. Da fare: il disegno della fessura è provvisorio (forme in `art`); un taccuino con l'obiettivo corrente. - **Mappa a gradini** (24 ottobre): una scheda per posto, con la miniatura dello sfondo (`make miniature`, `assets/scenes/mini/`) e il nome, in quattro fasce dalla Fortezza ai campi; le strade fra le schede. Sta in una schermata sul desktop; sul telefono si scorre in verticale. - **Campomigliaio**: tre foto dell'Arcu (Marco Arcuri, nei crediti fra «Idee e consigli») trasformate da Codex: il ponte a due arcate sul torrente, il Circolo SMS, la strada principale. Pronte in `assets/scenes/campomigliaio-{ponte,circolo,strada}.png`, **ancora da collegare** (camminata, hotspot, uscite, posto sulla mappa). Andrea, 24 ottobre: ci si arriva dal bivio della Via Provinciale (verso stazione e forno), andando a sinistra; ma prima viene **La Luna**, che Andrea deve ancora fotografare: si collega bivio → La Luna → Campomigliaio. - **Verso La Luna** (24 ottobre, foto di Andrea): dal bivio, a sinistra, il viale alberato della Provinciale (`provinciale_viale`), poi la Provinciale lungo la Carza in secca con la luna (`verso_luna`; la Carza d'estate si secca da quando hanno scavato le gallerie dell'alta velocità, d'inverno torna viva). In basso si va verso La Luna e Campomigliaio (per ora solo battute). Da mettere: le case vecchie con la curva, il rettilineo col cartello della rotonda, l'incrocio coi cartelli (`assets/raw/foto/luna-*.jpg`): ordine da chiedere ad Andrea. - **Taccuino** (24 ottobre, dalla revisione di Codex): pulsante «Taccuino» e tasto N; le tappe in `story.notebook` (fatte barrate, quella di adesso in evidenza) e in fondo il promemoria del Trebbio. Un test controlla che lungo la soluzione si spuntino in ordine. Il palio era custodito a scuola e se n'è accorta la Gianna (Andrea, 24 ottobre: in piazza all'inizio, alle porte della scuola, nel taccuino; la Gianna è una persona vera: serve il consenso). Da decidere: se Andrea vive il 2007 o lo racconta da adulto (al bar c'è ancora il segnaposto «Questo lo sa solo Andrea»). - **Ricerca nella mappa**: casella «Cerca un posto…», filtra mentre si scrive (`matchPlace`), Invio porta al primo. - **Scelta del rione** (24 ottobre): dopo «Nuova partita», «Per chi corri quest'anno?» fra i quattro rioni (`story.rioni`: Piazza rossi, Pieve bianchi, Cardetole verdi, Campomigliaio blu); resta nella partita come flag `rione:`. Cambiano la riga dell'introduzione e le battute su Pieve, Cardetole, Campomigliaio e la colonna. Le parti future col rione (l'Arcu, il capitano) vanno scritte per ogni scelta. **Per ora si sceglie solo Campomigliaio** (Andrea, 24 ottobre, per non moltiplicare battute e voci): Piazza, Pieve e Cardetole si vedono chiusi (`locked: true` in `story.rioni`). **Quando si decide di sbloccarli**: togliere `locked`, rileggere le battute per rione già scritte (introduzione, colonna, Pieve, strada per Cardetole e per Campomigliaio: cercare `rione:` in `story.js`), scrivere per ogni rione le parti nuove nate nel frattempo (l'Arcu, il capitano), `make voci`, e aggiornare il test «per ora si corre solo per Campomigliaio». - **Audio sul telefono**: passando a un'altra app (pagina nascosta) musica, voce e musichetta si fermano subito e la partita va in pausa; la musica riparte con Riprendi. - **Pronuncia** (`tools/pronuncia.json`): le parole che XTTS legge male, scritte come vanno lette; vale solo per la voce. Per ora «celo» → «ce l'ho». Le 32 voci nuove del 24 ottobre non sono state controllate con Whisper (qui non installato). - **Sessione del 23-24 ottobre**: il paese è quasi tutto in gioco (circa 40 scene, sfondi di Codex dalle foto di Andrea), collegato come quello vero; un test controlla che ogni strada vada e torni. Nuovi: carattere a pixel Press Start 2P, pulsante «?» per vedere cosa si tocca, mappa scorrevole sul telefono, titolo e introduzione a tutto schermo, inventario che si scorre, doppio clic per correre, pausa automatica. - **La catena del ghiacciolo** (tennis della chiesa): la Tosca offre bibite e ghiacciolo; ghiacciolo nella cedrata → stecco; gomma all'oratorio; stecco e gomma ripescano la chiavetta dalla griglia del ponticino; la chiavetta apre la casetta dell'area feste, dove c'è la torcia (per il buio della Fortezza). Le bibite si bevono con un clic; un oggetto cliccato due volte si usa da solo. - **Da fare**: sprite della Tosca al chiosco (serve una foto o una descrizione); ascoltare le voci nuove (nomi come Tosca e Tozzino); La Luna e Campomigliaio (foto in arrivo); la Pizzeria da Baffo (quadro da ridisegnare senza personaggi Disney); le idee su chiavi e indovinelli in `docs/IDEE.md`, a partire dalla chiave della Fortezza. - **Prima di GitHub Pages**: consensi delle persone nominate (Tosca, ing. Tozzi, Mariano Mirannalti per la sua foto), sfondi da foto prese da internet (`docs/IMMAGINI.md`), Cardetole (dice dove abita Andrea). - Vecchietta e vecchietto sono in gioco sulla panchina della Piazza (`assets/characters/`, da `assets/raw/vecchiett?-sheet.png`): consenso delle persone ritratte confermato da Andrea il 2026-10-23; mancano i loro nomi. - Via Provinciale (dalla rotonda verso la Pieve) → a destra Via del Pignone → in cima Piazzetta Cambray Digny, che porta in Piazza (a sinistra, dove prima c'era l'uscita per il Comune) e in Via de' Medici. Battute provvisorie sul murale. Via del Pignone (sfondo di Codex da `assets/raw/foto/via-del-pignone.png`): sul muro di destra il murale di Cistola (Davide Poggi), «il talento di via del Pignone», alla maniera dei murali di Maradona a Napoli (volto da `assets/raw/riferimenti/cistola.png`). Consenso di Davide confermato da Andrea il 2026-10-27. - Via Pietro Cipriani (fra Piazza e campeggio): Cinema Taiuti aperto con la locandina del Rattattù 2007 (stile da `assets/raw/riferimenti/rattattu-locandina.png`, scaletta illeggibile), campo da basket del Circolo: **da fare il gioco del basket** (idea di Andrea, 27 ottobre). - Fuori paese, dal campo secondario (a destra): le Mozzète → il ponticino → Coldaia → la falegnameria → Gabbiano; da Via Cipriani, indietro, Via Massorondinaio → campeggio. Sfondi da Street View, battute provvisorie. - In Fortezza quattro ragazzi inventati si fanno le canne da pesca col bambù per il lago dell'Anatre (sprite di Codex, `assets/raw/pescatori-sheet.png`, ritagliato 2x2 a mano: work, talk, laugh, proud); battuta finale di Andrea. - Andrea rifatto dalla sua foto del 2007 (`assets/raw/andrea-sheet-prova-2.png`; il vecchio foglio resta in `andrea-sheet.png`). - Strada del campeggio (poi Bosco ai Frati) e strada della scuola: per ora battute, scene da fare con le foto di Andrea. ### Domande per Andrea 1. ~~Cosa c'era dipinto sul palio del 2007?~~ Risposto: foto in `assets/raw/palio-2007-foto.jpg` (la strada che sale alla Fortezza con le bandiere, i ragazzi in fila, uno con la maglia rossa e le braccia alzate). 2. Il passamano dei mattoni: sul sentiero nel bosco o sulle mura della Fortezza? 3. Aggiungere i verbi **Spingi** e **Tira** (carretta, tiro alla fune)? 4. «La Colonna» era davvero il bar della piazza nel 2007? Chi c'era? 5. Consenso di Marco (l'Arcu), Mitrugno e Paleo; chi era Paleo; se e come ricordare Cipollone. 6. Il nonno: confermare il nome (Settimo Villani) e decidere come usare la sua leggenda nel finale. 7. Il Lele: come e quanto farlo comparire (con calma). 8. Battute e modi di dire del paese. ### Grafica - Sfondi puliti 16:9 di Pieve, Cardetole, Campomigliaio, interno della Fortezza (sotterranei). - Fogli sprite: l'Arcu, i vecchietti (seduti: fermi e mentre parlano), poi gli altri personaggi. - Interfaccia nello stile delle immagini di Andrea: cornice, inventario a icone (icone degli oggetti su sfondo verde). ### Motore - Personaggi non giocanti con sprite (al posto dei blocchi colorati dei vecchietti). - Tavole illustrate (immagine a tutto schermo con testo) per l'inizio e la fine delle sfide. - Scorrimento della visuale per le scene panoramiche (se serviranno). - Musica e suoni; titoli di coda con la dedica. - Pubblicazione su GitHub Pages riusando `build-site.sh`, `bump.sh`, `check-public.sh` di Manzolo Rush (solo quando Andrea lo chiede). ### Storia - La prima zona vera (Piazza + Pieve) con un enigma del Palietto: passamano dei mattoni, carretta o vaglio della rena. - La catena completa degli enigmi del documento, con gli indizi del Trebbio per ognuno.