# PENGO M05 — registrazione nativa completa della tappa 500.000, v1

Protocollo preparato l'8 ottobre 2026, prima dell'ammissione della tappa.
Questo documento e il codice, da soli, non attestano un risultato e non
avviano emulatori. Stefano autorizza: 500.000 verificati, pubblicazione di
report/video, poi pulizia del disco. M04/M03B già pubblicati restano intatti.

## Ammissione e congelamento

Il comando `prepare --source-root data/pengo/m05/scoring-attemptNN-v1`
accetta solo un tentativo terminale con `PASS_MILESTONE_500000`, target
raggiunto, prefisso ammesso e punteggio intero almeno 500.000 e inferiore a
655.360. Sono obbligatori entrambi i NUOVI proof nativi finali da reset,
esecuzioni complete, velocità nativa, 0 LOAD, 0 scritture RAM, stessi
ingressi/trace/pixel e dispositivi campionati; gate pixel e cronologia
legati al SHA256 del risultato, zero morti rilevate, zero epoch osservati.
Un punteggio osservato o un semplice manifest iniziale non basta.

`record_m05_500k_native_v1.py` congela fonte, risultato, proof, gate,
cronologia, input, trace, codice, protocollo, MAME e baseline. La fonte può
essere A07 oppure un successivo tentativo realmente ammesso; non cambia il
tentativo sorgente. Namespace nuovo: `data/pengo/m05/recording-500k-v1`;
unico job `m05-500k-native-v1-record`. Nessun riavvio o retry automatico.

Prima del primo MAME occorrono nuovi collector/fetch, registro dei costi
che conserva la storia senza doppio conteggio, HANDOFF e aggiornamento di
ENTRAMBI gli heartbeat mediante API, con readback esatto di tutti i campi.
`operations-ready-v1.json` deve legare per SHA256 questa ammissione
operativa al registro della capture e al risultato sorgente. Il run la
controlla e rifiuta namespace, started o risultati già esistenti.

## Esecuzione fisica finita

Una sola NUOVA esecuzione nativa intera da reset, stesso nastro ammesso,
nessuna estensione neutra, MAME 0.289 pengoja, DIP 176/204, 3 vite iniziali,
speed 1/throttle, BelowNormal, 0 LOAD e 0 scritture RAM. Budget totale
9.000 secondi, massimo 400.000 frame fisici e 1 MAME. Timeout esecuzione
8.100 secondi, resto riservato ai confronti e alla chiusura. Nessun
save-state è caricato; gli artefatti diagnostici privati restano locali.

Si acquisisce un PNG nativo per OGNI frame fisico 1..fine, incluso il
terminale anche se dispari. Campioni di riferimento al frame 9.184 e alla
fine; insieme esatto degli stessi campioni e dispositivi dei due proof.
Confronti separati contro entrambi i proof, input effettivamente latched
uguale al nastro e trace integrale identico; nessuna affermazione di
identità dell'intera macchina (`UNKNOWN`). Incompletezza/guasto produce
INCOMPLETE; un confronto fallito produce NUL, senza promozione o retry.
Costo fisico contato una sola volta dal complete/interrupted-cost reale;
assenza di ricevuta non è uno zero inventato.

## Video e pubblicazione

Renderer `video_milestone_m05_v1.py`, namespace
`video/pengo/m05/verified-500k-v1`. Il suo registro viene congelato prima
dell'esecuzione, legato a capture/source/renderer. Run solo dopo capture
PASS. Budget software 21.600 secondi, 4 thread BelowNormal, 0 emulatori e
0 nuovi frame fisici; riserva 1.800 secondi al decode completo.

Filmato intero 1280×720, tutti i frame, 60,606... fps corrispondenti al
clock fisico osservato di 16,5 ms. Pixel originali scalati nearest-neighbor
nel riquadro, informazioni a fianco, nessun taglio o accelerazione.
Punteggio, ACT completati/parziale, vite finali e costi sono letti dalle
ricevute ammesse, mai predeterminati. Etichette: TRAJECTORY SEARCH /
PRIVILEGED, validated healthy-PLAY restore, 0 MODEL CALLS, REAL TIME
REPLAY VERIFICATION, verification 0 LOAD / 0 RAM writes, 0 morti rilevate
e vite rimaste. UNKNOWN resta UNKNOWN; nessuna etichetta AUTONOMOUS AGENT
o record umano/mondiale.

Validazione: sequenza completa senza frame mancanti/ripetuti, limiti del
testo, anteprime reali e terminale, SHA256 MP4, decode integrale senza
errori, durata uguale a frame×16,5 ms, metadati legati a risultato,
proof/gate/cronologia/capture/input/trace. Poi report pubblico e UNICO
upload YouTube autorizzati, readback pubblico e copia di MP4, metadati e
hash in arcade-review; nessuna ROM/RAM/state/input/pesi/credenziale negli
invii. Solo dopo la pubblicazione riuscita si prepara la pulizia con un
nuovo registro e keeper attuali. Contratto rollover distinto prima di
qualunque successivo target oltre 500.000.
