Skip to content

Il kit, blocco 6: le scene in tre formati, e i banchi che in verticale misurano davvero - #14

Merged
antoninobig-beep merged 15 commits into
mainfrom
kit-blocco-6
Sep 16, 2026
Merged

antoninobig-beep merged 15 commits into
mainfrom
kit-blocco-6

Conversation

@antoninobig-beep

@antoninobig-beep antoninobig-beep commented Sep 15, 2026

Copy link
Copy Markdown
Collaborator

Blocco 6 del piano del kit: le scene in tre formati, e i banchi che in 9:16 e 4:5 misurano davvero. Il 16:9 pubblicato resta identico a main fotogramma per fotogramma; la pagina resta sul 16:9, i verticali stanno negli artefatti della run.

Cosa entra

  • Tre rapporti nel catalogo. catalog.json dichiara ratios e i provini del tempo; Root registra ogni scena, ogni provino e il film in 16:9, 9:16 e 4:5 (CardFocus, CardFocus-9x16, CardFocus-4x5). La scena sceglie la camera dalla dimensione della sua composition.
  • Pose verticali derivate (products/topics/poses.ts): yaw e pitch del 16:9, stesso rapporto di spinta fra una posa e la successiva, zoom alzato solo quanto serve a coprire il quadro, soggetto di ogni posa in quadro. In 9:16 la camera segue la card durante il trascinamento. Il thread va a capo al bordo visibile della lastra (1180 / 468 / 825 px).
  • Il film come finestre: kit/film.ts, kit/SceneWindow.tsx, composition TopicsFilm nei tre rapporti, e film-identity.sh che confronta i fotogrammi del film con quelli delle scene da sole.
  • Recite in moduli puri, leggibili dai banchi: handoff.ts (gesto di CardHandoff), promptTiming.ts (recita di PromptInput), thread.ts (lo scambio gia' nel thread), primitives/path.ts.
  • Controlli generati: ogni banco dichiara i suoi controlli e negativi in scripts/checks/<banco>.mjs, manifest.mjs checks --ratio R li risolve, expect.sh li esegue contro il codice atteso, bench-coverage.py boccia un banco senza un negativo che fallisce. La geometria di un banco sta in products/topics/benches/<banco>.ts.
  • CI in tre job: pagina (dimostrazioni e proiezione, senza render), formato in matrice sui tre rapporti (render, provini, controlli, copertura, artefatti), deploy che aspetta tutto e pubblica col 16:9. Cache per rapporto.

Banchi che non potevano fallire, trovati portandoli in verticale

  • click-gap: in 9:16 e 4:5, col pulsante d'invio fuori quadro, promuoveva scarto 2 qualunque fosse lo scarto vero. Adesso guarda il campo e la coda del thread proiettati: f271 e f276 nei tre rapporti; eventi fusi, interfaccia lenta e clic mancato escono 1.
  • handoff-travel: sullo schermo misurava la panoramica, e un taglio secco passava. Adesso misura sulla lastra raddrizzata con la camera di ogni campione, e le intestazioni delle colonne controllano il raddrizzamento (0 pixel sui render veri, 40-150 su un fermo immagine che prima "attraversava" 208 px). 170 / 195 / 183 px.
  • focus-sharpness: con la geometria del 16:9 su un verticale usciva 0 con 449159000x. Adesso controlla quadro e ritagli (3), nitidezza a mezzo pixel, soglia 1,35: render veri 2,81 / 1,79 / 2,02, screenshot 1,09 / 1,14 / 1,06.
  • contrast-floor: un ritaglio vuoto usciva 1 dando la colpa al pavimento; ora 3. Fixture di un fotogramma invece di 450. 4,25 / 4,54 / 4,51 : 1.
  • tempo: confrontava i primi 480x270 byte, in 9:16 il terzo alto del quadro. Su tutto il quadro, le finestre in cui le soglie percettive non scalano le dichiara la scena.
  • seam: una giunta rotta usciva 2, mai 1. Ora una coppia al contrario esce 1 in ogni rapporto.
  • beats, framelocked-verdict, rest-point, drift, chain-check, fill-geom: per rapporto, con negativi in ogni formato.

Come si sa che il sito non cambia

  • still-identity.sh main: tutte le scene del 16:9, piu' le finestre di CardHandoff (9 frame), PromptInput (10) e UIMockup (5): identiche.
  • Controlli generati, in locale e in CI: 16:9 60/60, 9:16 58/58, 4:5 58/58 col codice atteso, copertura verde in tutti e tre, e il negativo della copertura boccia.
  • CI: pagina 5 min, formato 13 / 15 / 19 min (limite 25), deploy assembla.
  • La prima run in CI ha bocciato seam (coppia al contrario promossa) e rest-point (BoardOrbit 9:16) che sul Mac passavano: compare -fuzz conta diverso fra ImageMagick 6 e 7. I due banchi ora contano con ffmpeg (_pixeldiff.sh), stesso numero nei due posti.

Da guardare

  • Le pose verticali sono una derivazione, non una regia: sono da guardare (decisione 5 del piano). In 9:16 la fine di UIMockup ha la meta' bassa vuota, e in CardFocus la card deborda a destra.
  • Nel fotogramma del clic d'invio il thread sale prima che la bolla compaia: difetto di giunta di stato, gia' nel 16:9 pubblicato, per il passo C.

🤖 Generated with Claude Code

Antonino Cuzzola and others added 15 commits September 15, 2026 18:37
…in moduli puri

Il catalogo dichiara i rapporti e Root registra ogni scena in 16:9, 9:16 e 4:5,
piu' TopicsFilm, le stesse scene in finestre (kit/film.ts, kit/SceneWindow.tsx),
misurato da film-identity.sh contro le scene da sole. Le pose verticali vengono
dalla regola R (poses.ts) e il thread va a capo dove finisce il quadro. I tempi
di CardHandoff e di PromptInput escono dai componenti in moduli puri, per i
banchi. expect.sh e bench-coverage.py pronti per i controlli generati.

Il 16:9 resta identico a main (still-identity su tutte le scene e sulle
finestre di UIMockup, CardHandoff e PromptInput).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…erati, provini in ogni formato

manifest.mjs prende --ratio (chain, fill, film, project-cases con le pose del
rapporto), ha 'bench NOME' che legge la geometria di un banco dal suo modulo
sotto il prodotto, e 'checks' che raccoglie i controlli da scripts/checks/*.mjs
nel formato di expect.sh. I provini del tempo stanno nel catalogo e Root li
registra nei tre rapporti. no-product-literals guarda i prodotti, non il kit,
anche nelle sottocartelle.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
… i negativi --must-fail

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…hiarate dalla scena

tempo.py confrontava i primi 480x270 byte: in 9:16 era il terzo alto del quadro.
Adesso scala a un quarto del lato e confronta tutto. Le soglie che non scalano
(il ritardo della card sulla mano) le dichiara CardHandoff nel manifest: fuori
da quelle finestre il tempo normalizzato deve coincidere, dentro il residuo
deve esserci. fixture-tempo.sh e fixture-trim.sh prendono rapporto e percorsi.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
seam.sh controllava la separazione prima della soglia, quindi una giunta rotta
usciva 2 (misura inutile) e mai 1. Adesso 2 solo se anche il taglio di
controllo e' quasi zero. rest-point.sh prende --ratio; i due negativi (ritaglio
mosso, fermo immagine) sono generati per rapporto con tempi presi dalla durata.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…lo, negativi in ogni formato

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
… per la fixture, il vuoto esce 3

Il ritaglio sull'intestazione del thread si proietta con la posa del rapporto
(nel 16:9 resta {0,410,628,40}). Un ritaglio senza testo usciva 1 dando la colpa
al pavimento: adesso esce 3. La fixture a 0,25 e' un remotion still invece di
450 fotogrammi, e il banco controlla che il quadro sia quello del rapporto.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…l quadro, soglia misurata

La geometria e' la card all'ultimo fotogramma nel quadro del rapporto e la
stessa zona della lastra al primo, proiettata con yaw e pitch veri; K dalle
larghezze proiettate. Il banco esce 3 se il quadro non e' lo stage o un
ritaglio non esce della dimensione chiesta (prima dava 449159000x). Nitidezza a
mezzo pixel e soglia 1,35: render veri 2,81/1,79/2,02, screenshot 1,09/1,14/1,06.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Il banco contava il quadro intero e in 9:16 e 4:5, con il pulsante d'invio fuori
quadro, promuoveva scarto 2 qualunque fosse lo scarto vero. Adesso guarda due
zone proiettate dal manifest nel tratto a camera ferma: lo svuotamento del campo
e la bolla nella coda del thread. Tre copie guaste per rapporto (eventi fusi,
interfaccia lenta, clic mancato) escono 1. Scarto misurato: 5 frame, 4 sul
provino veloce in 9:16. Tolto uno slideY ridondante che tsc segnalava.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…in quadro, OCR sulla zona

I sei frame e le parole copiate dalla scena diventano il manifest: campioni
dalla battitura, dall'invio e dallo streaming, verificati crescenti; tolte le
parole che lo scambio precedente del thread gia' mostrava (thread.ts). L'OCR
legge thread e campo alla posa ferma del rapporto. TESSERACT sostituisce il
sudo mv nel negativo; aggiunti due negativi veri, fermo immagine e coda coperta.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…ddrizzata

In 9:16 la camera segue la card e sullo schermo si misurava la panoramica; e i
campioni prima della presa facevano passare un taglio secco. Adesso ogni
campione del trascinamento si raddrizza sulla lastra con la camera di quel frame
(angoli proiettati dal manifest), e il baricentro del cambiamento si legge li'.
Le intestazioni delle colonne, ferme durante il gesto, controllano il
raddrizzamento: zero pixel sui render veri, 40-150 su un fermo immagine, che
prima in 9:16 attraversava 208 px. Fermo, contrario e taglio escono 1 in ogni
rapporto.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…ggiornati

pagina (dimostrazioni e proiezione, senza render), formato x3 (render, provini,
expect.sh sui controlli del manifest, bench-coverage col suo negativo),
deploy (assembla col 16:9 e pubblica). Cache per rapporto. Tolti i comandi
vecchi del manifest e benches.ts. film-identity: il negativo guarda il frame in
cui la camera corre, calcolato dalla traccia.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
In CI (ImageMagick 6) la coppia al contrario di seam risultava quasi identica e
l'inizio di BoardOrbit in 9:16 sfondava la soglia di rest-point, mentre sul Mac
(ImageMagick 7) passavano. compare -fuzz non conta allo stesso modo nelle due
versioni. _pixeldiff.sh fa il conto con ffmpeg, grigio e soglia 20 su 255:
giunte fino allo 0,21%, tagli di controllo 2,8-11%, coppia al contrario 41%.
rest-point ricalibrato sui tre rapporti (peggiore 0,24, soglia 0,45). Gli
artefatti della CI si caricano anche quando un banco boccia.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@antoninobig-beep
antoninobig-beep merged commit 71cbf55 into main Sep 16, 2026
5 checks passed
@antoninobig-beep
antoninobig-beep deleted the kit-blocco-6 branch September 16, 2026 07:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant