Come funziona l'IA Da specifica a codice
Caso pratico Diciassette stadi · Settembre 2026

Da due documenti a un gioco funzionante

Un CLAUDE.md di 115 righe e uno SPEC.md di 336 entrano nel contesto di un modello di frontiera. Ne escono quaranta file TypeScript, cento test e un maze-chase giocabile. Questo diagramma segue quel percorso passaggio per passaggio: cosa arriva davvero al modello, cosa decide, dove sbaglia in modo prevedibile, e cosa fa la differenza fra un risultato utile e una pila di codice plausibile.

L'ingresso
CLAUDE.md — metodo, stack, architettura, anti-pattern
SPEC.md — 14 sezioni, 12 tabelle, 7 fasi di consegna

≈ 10.500 token di documenti, ≈ 16.000 di contesto iniziale.

01
Ingresso

I due documenti non sono l'unica cosa nel contesto

L'utente scrive una riga. Il modello riceve sedicimila token: circa un terzo li ha scritti il fornitore dello strumento, e il resto sono documenti che l'utente ha scritto prima, non in quel messaggio. Sapere cosa c'è davvero nella finestra è il primo passo per capire come si comporterà.

Blocco
Chi lo ha scritto
Token
Istruzioni di sistema
il fornitore dello strumento
~2.500
Definizioni degli strumenti
leggi file, scrivi file, esegui comando, cerca — con schemi e descrizioni
~3.000
CLAUDE.md
l'utente · iniettato automaticamente perché sta nella radice del progetto
~2.400
SPEC.md
l'utente · allegato esplicitamente
~8.100
La richiesta
«iniziamo dalla fase 0»
~10
La riga più importante di questa tabella è la penultima, lo SPEC. L'ultima, i dieci token della richiesta, conta quasi nulla. È lo SPEC ad avere il peso — ed è per questo che scriverlo bene vale più di qualsiasi tecnica di prompting. Gli strumenti qui sono ridotti a quattro per semplicità: con uno strumento reale le loro definizioni possono pesare 10-20k token da sole, di più se sono collegati server MCP.
02
Ingresso

Come viene montato, e perché in quest'ordine

Il modello riceve un unico flusso di token. La divisione in blocchi serve all'infrastruttura — e l'ordine non è estetico: determina cosa si può riusare senza rielaborarlo.

1
Istruzioni di sistema + strumenti
in cache
2
CLAUDE.md e SPEC.md, integrali e delimitati
in cache
3
Struttura corrente del progetto, letta dal disco
cambia raramente
4
Cronologia della conversazione e risultati degli strumenti
cresce a ogni passo
5
Il messaggio dell'utente
variabile
Perché i primi due blocchi non si muovono

Sono identici a ogni chiamata, quindi il lavoro già svolto per elaborarli si riusa: si pagano una frazione e non si aspetta di rielaborarli. Su una sessione da duecento passi sono 16.000 token × 200 che non vengono ricalcolati, e lo stesso vale per la cronologia già vista (stadio 08).

Perché la posizione conta anche per la qualità

Su contesti lunghi le istruzioni all'inizio e la richiesta alla fine ricevono più peso di quelle in mezzo. Un vincolo sepolto al centro di un documento di ottomila token viene rispettato meno di uno scritto in cima — ragione pratica per cui il CLAUDE.md è breve e sta prima.

03
Ingresso

I vincoli diventano numeri interi

Prima di qualsiasi elaborazione, ogni carattere dei due documenti viene spezzato in pezzi di vocabolario. Il modo in cui questo avviene spiega alcune debolezze molto concrete che compariranno più avanti.

Una riga della §5.1, tokenizzata
« Tie-break deterministico: UP > LEFT > DOWN > RIGHT »
Tie
-break
·determin
istico
:
·UP
·>
·LE
FT
·>
·DOWN
·>
·RIGHT
Tredici token per una regola che il modello applicherà centinaia di volte nel codice. L'ordine relativo dei quattro nomi è codificato nelle posizioni, non in una struttura dati: il modello dovrà ricostruirlo ogni volta che scrive una funzione di scelta della direzione.
Le cifre si spezzano

«75.7576» arriva come quattro o cinque token separati; «1033» come due. Il modello non «vede» il numero: vede una sequenza di frammenti. È una delle ragioni per cui ricopiare e manipolare numeri è fragile. Ma riportare a memoria una tabella vista durante l'addestramento è inaffidabile soprattutto perché i pesi conservano i dati rari in modo approssimato. Per questo lo SPEC fa bene a mettere tutti i numeri in un file dati.

Contare caratteri è difficile

Una riga di 28 caratteri della mappa ASCII arriva come 6-10 token. Verificare che siano esattamente 28 richiederebbe di contare dentro i token — un'operazione che l'architettura non favorisce. Se ne riparla allo stadio 14.

04
Lettura

Sedicimila token, un colpo solo

Tutti i token del contesto attraversano la rete insieme, in parallelo. È l'unica fase in cui l'hardware lavora a pieno regime, e dura meno di un secondo: leggere è economico, scrivere no.

Strati bassi
Sintassi e forma: questo è Markdown, questa è una tabella, questa è una riga di codice, questo è italiano e quest'altro inglese
Strati intermedi
Riferimenti e struttura: «§5» rimanda a una sezione precisa, «vedi CLAUDE.md» collega due documenti, la tabella degli anti-pattern associa ogni riga sbagliata alla sua correzione
Strati alti
Intenzione: questo è un mandato con vincoli forti e una procedura obbligatoria, e la prima cosa richiesta non è codice
La descrizione per strati è una semplificazione utile, non una mappa esatta: le funzioni non sono nettamente separate e nessuno può leggerle direttamente. Ciò che si osserva è il risultato.
~16.000
token elaborati insieme
< 1 s
alla prima parola
~2 GB
di cache KV per questo contesto
05
Decisione

La prima decisione: non scrivere codice

A un modello addestrato su milioni di richieste di programmazione, la continuazione più naturale di «iniziamo dalla fase 0» è aprire un file e cominciare. Il CLAUDE.md deve batterlo su quella inclinazione, e lo fa con quattro parole.

CLAUDE.md, metodo di lavoro, punto 1

«All'inizio di ogni fase produci un piano: file toccati, funzioni/tipi introdotti, test previsti, rischi. Fermati e aspetta l'OK.»

Perché funziona

È imperativa, non descrittiva · dice cosa fare, non cosa evitare · elenca i quattro contenuti richiesti, quindi è verificabile · sta nelle prime righe del documento · e il post-training ha reso il modello particolarmente attento alle istruzioni procedurali esplicite.

Cosa avrebbe funzionato peggio

«Cerca di pianificare prima di codificare» — attenuata, quindi trattata come preferenza. «Non buttarti subito sul codice» — negativa, lascia aperto tutto il resto. Sepolta a pagina tre — pesa meno di quella in cima.

La regola gemella, e più rara

Il punto 3 chiede qualcosa che quasi nessuno chiede: «se una richiesta della spec ti sembra sbagliata, dillo prima di implementarla». Il post-training spinge verso la cooperazione, e senza un permesso esplicito il comportamento naturale è eseguire in silenzio anche ciò che si ritiene un errore. Questa riga, insieme al punto 2 («se emerge una decisione non coperta, fermati e chiedi»), è ciò che produce lo stadio 15.

La stessa regola, imposta dal software

Lo stesso effetto si può imporre fuori dal modello. Gli agenti di coding hanno una modalità piano in cui il software non esegue scritture né comandi finché l'utente non approva. Una regola nel CLAUDE.md chiede di fermarsi; la modalità piano rende impossibile non farlo. È lo stesso principio dello stadio 13, applicato al primo turno.

06
Decisione

La bozza che non vedi

Prima di scrivere il piano, il modello produce qualche migliaio di token di ragionamento. Non è una quantità fissa: il modello decide quanto ragionare in base alla difficoltà, entro un livello di sforzo scelto dall'utente, e all'utente di solito ne arriva solo un riassunto. Non è nemmeno una formalità: è il luogo in cui i conflitti fra i due documenti vengono trovati, e senza quello spazio verrebbero risolti a caso mentre si scrive.

Bozza di ragionamento — ricostruzione
Fase 0 chiede: scaffolding, loop a timestep fisso, griglia, parsing mappa ASCII,
rendering statico, overlay debug. Non chiede player né fantasmi.

Ma il parsing della mappa richiede la mappa. §1 dice 240 pellet + 4 energizer,
28×31, e dà l'alfabeto — ma il layout non è fornito. Devo produrlo io.
Non posso copiare quello originale: §0 vieta asset di terze parti.
→ serve un labirinto originale, simmetrico, connesso, con esattamente 240 pellet.
→ contarli a mano è inaffidabile. Scrivo un validatore prima della mappa.

§12 chiede un test «il conteggio pellet è esattamente 244». Ottimo: è il mio oracolo.

CLAUDE.md vieta a core/ di toccare il DOM e chiede un test che lo verifichi.
Questo è fase 0: l'architettura va imposta subito, dopo sarebbe un refactor.

Timestep fisso a 60: accumulatore, max 5 tick di recupero. Attenzione — §11 chiede
anche pausa su visibilitychange. È fase 6 nel piano di consegna, ma il loop lo scrivo
ora: lascio l'aggancio senza implementarlo? → lo segnalo nel piano, non decido da solo.
Ogni riga di questa bozza è calcolo aggiuntivo che il modello si porta dietro: rientrando nel contesto, diventa il supporto su cui si appoggiano i passaggi successivi. È il motivo per cui i modelli che ragionano prima di rispondere sono nettamente migliori sui compiti a vincoli multipli.
07
Uscita

Il piano esce, e ogni riga ha una fonte

Circa 1.200 token, prodotti uno alla volta. Quello che segue non è una risposta generica su come si struttura un progetto: quasi ogni riga è tracciabile a un punto preciso dei due documenti.

Riga del piano
Da dove viene
File: core/grid.ts · core/rng.ts · core/data/maze.ts · core/game.ts · render/maze.ts · main.ts
CLAUDE.md, struttura
Loop con accumulatore, 1/60 s, tetto di 5 tick di recupero
CLAUDE.md, game loop
Test di architettura: scan degli import e degli identificatori vietati in core/
CLAUDE.md, regola forte
Test: la mappa contiene esattamente 244 fra pellet ed energizer
SPEC §1 e §12
Pre-render del labirinto su canvas offscreen, blit per frame
SPEC §2, anti-pattern
Overlay di debug su F1: griglia, indici tile, fase corrente
SPEC §13, fase 0
Rischi: il layout del labirinto non è nella spec. Propongo di scriverlo io in ASCII e di verificarlo con uno script di validazione, perché contarlo a occhio è inaffidabile. Serve la vostra conferma sulla forma.
dedotto — stadio 06
L'ultima riga è l'unica il cui contenuto nessuno poteva prevedere, ed è la più utile del piano. È il prodotto diretto del punto 2 del CLAUDE.md: «se emerge una decisione non coperta, fermati e chiedi».
08
Pausa

Il modello si ferma, e non «aspetta»

Emesso il token di fine turno, il processo termina. Non c'è nulla in esecuzione, nessuno stato che persiste, nessuna attesa. Quando l'utente risponde, tutto il contesto viene rimandato da capo — con due messaggi in più in fondo.

Turno 1
16.000 token in, ~4.000 out: ~1.200 di piano, il resto ragionamento
Nulla
il processo non esiste più
Turno 2
~20.000 token in, di cui 16.000 in cache
Cosa si aggiunge in coda
Assistente
il piano appena prodotto, verbatim; nei modelli recenti anche il ragionamento che lo ha preceduto
Utente
«ok, procedi. Il labirinto scrivilo pure tu, ma dev'essere simmetrico»
Il modello non «ricorda» di aver scritto quel piano: lo rilegge, come rileggerebbe un documento di chiunque altro. La continuità della conversazione è un'illusione ben costruita dal software attorno, e funziona finché il contesto regge — vedi lo stadio 16.
09
Scelta

Un vincolo negativo che funziona

La §2 chiede una direzione artistica e poi fa una cosa insolita: elenca esplicitamente i cliché da non produrre. È il rimedio diretto al comportamento più prevedibile di un modello lasciato libero — proporre la media di ciò che ha visto.

Cosa proporrebbe da solo

Fondo nero puro, accento verde acido o vermiglio, scanline CRT, vignettatura, font pixel-art. Non perché sia una scelta: perché è la continuazione più probabile di «gioco arcade retrò» in tutto ciò che ha letto.

Cosa fa il divieto

Toglie dal tavolo i candidati più probabili e costringe la generazione verso regioni meno battute. Non rende il modello più creativo: gli impedisce di cadere nel canale che scorre più veloce.

docs/DESIGN.md — estratto del token system prodotto
--ink-void #0B1026 fondo, blu mezzanotte
--wall-enamel #2B4CE0 corpo del muro, smalto vetrificato
--wall-specular #7FA0FF highlight in alto, 1 unità
--pellet-brass #E8C36A borchie
--alarm #FF5A3C solo energizer attivo e stato di allarme

signature: i muri sono nastri arrotondati con luce da sopra, non linee.
La stessa geometria genera il bordo, l'highlight e l'ombra interna:
un solo path, tre passate. Riconoscibile in uno screenshot da 200 px.
La spec chiedeva «un elemento signature». Senza quella richiesta esplicita il risultato sarebbe stato una palette corretta e anonima: i modelli producono coerenza per costruzione, e distinzione solo se gliela si domanda.
10
Codice

Il primo file, annotato

Sessanta righe di TypeScript. Nessuna di queste scelte è generica: ognuna risponde a una riga precisa dei due documenti, e su un progetto senza quei documenti sarebbero state tutte diverse.

src/core/game.ts — estratto
export const TICK_HZ = 60 as const;
const MAX_CATCHUP_TICKS = 5;

export function advance(state: GameState, input: Input, rng: Rng): GameState {
  // pure: nessun accesso a Date/performance/Math.random qui dentro
  ...
}
TICK_HZ = 60
CLAUDE.md: timestep fisso a 60 tick/s. Costante esportata con un nome, non numero sparso nel codice
MAX_CATCHUP_TICKS = 5
«massimo 5 tick di recupero per frame, poi si scarta il residuo» — evita la spirale della morte dopo un tab in background
rng: Rng
iniettato, non importato: «un solo generatore, seedato, iniettato». Senza questo parametro la funzione non sarebbe pura e i test di §12 non sarebbero riproducibili
(state, input) => state
«stesso stato + stesso input + stesso seed ⇒ stesso stato». La firma è il requisito di determinismo, scritto in TypeScript
// commento
spiega un perché, non parafrasa il codice — CLAUDE.md, convenzioni. È l'unico commento del file
11
Ciclo

Ventiquattro passi, in traccia

Da qui in avanti il modello lavora in ciclo: emette una chiamata a uno strumento, il software la esegue, il risultato rientra nel contesto, si riparte. La traccia di una fase reale è ripetitiva — ed è esattamente questo il punto.

Passo
Azione
Esito
1-3
crea package.json, tsconfig.json, vite.config.ts
ok
4
esegue npm install
ok, 38 s
5-7
scrive grid.ts, rng.ts, e i loro test
ok
8
scrive tools/validate-maze.tsil validatore, prima della mappa
ok
9
scrive la mappa ASCII, 31 righe
ok
10
esegue il validatore
FALLISCE — stadio 12
11-18
corregge la mappa e riesegue il validatore, quattro giri
al quarto, verde
19-22
loop, rendering statico, overlay di debug, main.ts
ok
23-24
npm test e npm run build, poi il commit
verdi · fase 0 chiusa
Ogni passo è una chiamata completa al modello: rilegge tutto il contesto accumulato fino a lì e genera la sua uscita token per token. Ventiquattro passi significano ventiquattro chiamate complete, ed è per questo che un agente costa molto più di una singola risposta.
Fra un passo e l'altro

Fra una chiamata e l'altra il modello ragiona sul risultato appena ricevuto, prima di decidere il passo successivo. E quando le azioni sono indipendenti, come i tre file di configurazione dei passi 1-3, può chiederle tutte insieme in un solo passo.

Chi autorizza i comandi

Ogni comando passa da un filtro: l'utente lo approva, oppure è in una lista di comandi consentiti, oppure gira in una sandbox senza accesso alla rete né ai file fuori dal progetto. npm install, che scarica codice da internet, è il tipico comando che si fa approvare.

12
Ciclo

Il momento in cui l'ambiente fa il suo lavoro

Il modello ha scritto una mappa di 31 righe che sembra giusta. Non lo è, e non poteva accorgersene rileggendola. Se ne accorge il validatore.

Uscita del passo 10
✗ row 14: expected width 28, got 27
✗ row 22: expected width 28, got 29
✗ pellet count: expected 240, got 231
✓ energizer count: 4
✗ symmetry: 6 mismatched tiles on the vertical axis
✓ connectivity: all pellets reachable from spawn
Perché l'errore era inevitabile

Contare a 28 caratteri per 31 righe, mantenendo simmetria e un totale esatto, è precisamente il tipo di compito su cui la rappresentazione a token è debole. Non è una lacuna di ragionamento: è una lacuna percettiva.

Perché il recupero è banale

Il messaggio dice quale riga, quanto, e di quanto sbagliata. Con quell'informazione la correzione è un compito facile, e in quattro giri si arriva a verde. Un errore che dicesse solo «mappa non valida» avrebbe prodotto tentativi alla cieca.

La lezione generale

Un modello si corregge bene quando l'ambiente gli dice che ha sbagliato e in cosa; si corregge male quando deve accorgersene da solo. Tutto il valore di uno SPEC che impone test verificabili sta qui: trasforma un compito di scrittura, dove il modello è bravo ma fallibile in silenzio, in un compito di ricerca con un oracolo, dove è affidabile.

13
Ciclo

Trasformare una regola in un guardiano

Il CLAUDE.md non si limita a vietare a core/ di toccare il DOM: chiede di scrivere un test che fallisca se la regola viene violata. È la mossa più intelligente dei due documenti.

tests/architecture.test.ts — estratto
const FORBIDDEN = ["window", "document", "performance",
                  "Math.random", "Date", "setTimeout"];
const FORBIDDEN_IMPORTS = ["render/", "audio/", "input/", "ui/"];

test("core stays pure", () => {
  for (const file of walk("src/core")) { ... }
});
Una regola nel documento

Vale finché il modello ci presta attenzione. Alla fase 5 la riga è ancora nel contesto, ma sepolta sotto centomila token di codice e risultati. Il modello potrebbe scrivere performance.now() dentro core/ senza malizia, perché in quel punto la regola pesa poco.

La stessa regola come test

Vale per sempre e non occupa contesto. Alla fase 5 il test fallisce, il messaggio d'errore rientra nel contesto, e il vincolo si riafferma da solo esattamente quando serve. Un vincolo eseguibile è un vincolo che non si dimentica.

Il passo successivo: gli hook

Il test si riafferma solo se qualcuno lo esegue, e il passo successivo è non affidare nemmeno l'esecuzione al modello. Gli agenti di coding permettono di agganciare comandi (hook) a eventi del ciclo: dopo ogni scrittura di file parte il test di architettura, e il suo errore rientra nel contesto senza che nessuno l'abbia chiesto.

14
Limiti

Cinque errori prevedibili, e la contromisura

Non sono errori casuali: sono conseguenze dirette di come il modello è fatto, e si possono prevedere prima di iniziare. Tre dei cinque sono già disinnescati dai due documenti.

ErrorePerché accadeContromisura
Mappa ASCII con righe di lunghezza sbagliatai caratteri non sono visibili singolarmente nei tokengià nella spec: validatore + test dei 244
Tabelle numeriche riportate a memoria e imprecisei pesi conservano i dati rari in modo approssimato; le cifre spezzate in più token peggiorano le cosegià nella spec: tutti i numeri in levels.ts, con nota sulla fonte
setTimeout per il freeze di 0,5 s sul fantasma mangiatoè la soluzione più frequente nel codice JavaScript esistentegià nella spec: divieto esplicito + «ogni durata in tick»
Allocazioni dentro il game looplo stile idiomatico moderno alloca liberamente, ed è quello su cui è addestratoserve un test di performance, o una revisione mirata: la regola scritta da sola non basta
Cornering implementato maleè facile da descrivere e sottile da realizzare; gli esempi pubblici sono per lo più semplificatiun test deterministico con input registrati tick per tick cattura la meccanica; la sensazione di gioco resta un criterio di accettazione manuale
Le ultime due righe sono quelle da sorvegliare: sono i punti in cui il codice sarà sintatticamente corretto, passerà i test, e sarà comunque sbagliato. Un buon documento di specifica riduce gli errori del primo tipo; per il secondo serve ancora qualcuno che giochi.
15
Limiti

Le domande che il modello riporta indietro

Uno SPEC di 336 righe scritto con cura contiene comunque una dozzina di punti sottodeterminati. Eccone sette. Trovarli è uno dei contributi più utili del modello — e avviene solo perché il CLAUDE.md lo autorizza esplicitamente a fermarsi.

§1
Il layout del labirinto non è fornito, ma il conteggio dei pellet è vincolato a 240. Lo scrivo io? Con quale forma?
§5.3
Il contatore globale post-morte quando si disattiva? La spec dice quando si attiva e che congela gli individuali, ma non la condizione di uscita.
§6
«Da livello ~19 la durata è 0»: il tilde va bene per la prosa, non per una tabella. Livello 19 esatto?
§4
«Mangiare un pellet costa 1 tick»: il player si ferma per un tick, o si muove a velocità ridotta per quel tick? Sono due sensazioni diverse.
§7
Il livello 21+ ha «—» per i fantasmi spaventati. Significa che frightened non esiste più, o che vale il valore precedente?
§8
Vita extra a 10.000: una sola volta, o ogni 10.000 punti?
§7
Otto frutti con i loro punti, ma non si può usare la frutta originale. Servono otto oggetti nuovi: li propongo io o li fornite voi?
Nessuna di queste è una domanda pigra: ognuna, decisa male in silenzio, produce un gioco che funziona e si comporta diversamente da come lo si immaginava. Sono esattamente i casi previsti dal punto 2 del CLAUDE.md.
16
Durata

Sette fasi, una finestra che si degrada

Ogni file letto, ogni uscita di test, ogni versione scartata resta nel contesto. Con una finestra da 200k alla fase 4 non ci si sta più. Con una da un milione ci si sta, ma ogni passo rilegge tutto, costa di più e il modello presta meno attenzione alle regole lontane. In entrambi i casi va deciso cosa buttare.

Occupazione del contesto per fase
Fase 0
~24k
Fase 1
~48k
Fase 2
~92k
Fase 3
~145k
Fase 4
compattazione
Cosa si tiene

Il CLAUDE.md, che il software ricarica sempre · lo SPEC, se lo si rilegge dal disco o se è collegato dal CLAUDE.md: allegato una volta in chat, verrebbe solo riassunto · le decisioni prese, in docs/DECISIONS.md · lo stato del lavoro corrente · gli ultimi passi per esteso.

Cosa si butta

Il contenuto dei file già scritti — si rileggono dal disco quando servono · le uscite dei test già superati · le versioni intermedie della mappa · i passi di fasi chiuse.

Il docs/DECISIONS.md richiesto dal CLAUDE.md non serve solo agli umani: è memoria esterna che sopravvive alla compattazione. Una decisione scritta lì resta disponibile alla fase 6; la stessa decisione discussa solo in chat, no.
Chi compatta

A compattare è il modello stesso. Il software gli chiede di riassumere la sessione, e il riassunto prende il posto della cronologia. Quello che il riassunto omette è perso, a meno che non stia su disco. Prima di arrivarci si usano rimedi più leggeri: i risultati di strumento più vecchi vengono sostituiti da un segnaposto, e le ricerche esplorative si affidano a un sottoagente.

Un secondo modello con un contesto vuoto

Un altro modo per non riempire la finestra è non farci entrare il lavoro. L'agente principale può delegare un compito a un sottoagente, cioè un'altra chiamata al modello con un contesto suo: per esempio rivedere tutto il codice della fase 2 contro lo SPEC. Il sottoagente legge trenta file e restituisce dieci righe di rilievi, e nel contesto principale entrano solo quelle. E un revisore che non ha scritto il codice ne vede meglio gli errori.

17
Bilancio

Il conto, dall'inizio alla fine

Sette fasi, con l'utente che approva ogni piano e gioca alla fine di ogni fase. I numeri sono stime plausibili, non un conto esatto, per un progetto di questa dimensione con un modello di frontiera.

QuantitàNota
Chiamate al modello~250di cui ~200 passi di strumento
Token in ingresso letti~15 Mil contesto, sempre più lungo, si rimanda a ogni passo: in media ~60k per chiamata
Di cui riusati dalla cache~85%a ogni passo si rielabora solo la coda nuova; il resto del prefisso viene dalla cache
Token prodotti~280 kcodice, test, piani, ragionamento
Righe di TypeScript consegnate~4.500in ~40 file
Rapporto prodotto / consegnato~4 : 1tre quarti dei token generati non sopravvivono
Ordine di spesa10-30 €con la cache, secondo la fascia del modello; senza cache circa tre volte tanto
Tempo del modello~3 oresommando le generazioni
Tempo dell'utente~10 orerevisione dei piani, prove di gioco, decisioni
L'ultima riga è quella che conta: il collo di bottiglia non è il modello. Il progetto avanza alla velocità con cui una persona riesce a leggere i piani, provare il gioco e rispondere alle domande dello stadio 15.
In una riga

Il modello non ha capito la specifica. L'ha resa eseguibile.

Ogni stadio di questo percorso è la stessa operazione ripetuta: prevedere il pezzo di testo successivo, dato tutto quello che c'è nella finestra. Ciò che trasforma quella previsione in un gioco funzionante non è nascosto nei pesi — sono i test che dicono quando è sbagliata, e le due persone-giorno spese a scrivere i documenti prima di cominciare.

Conteggi di token, tracce e stime di costo sono ricostruzioni realistiche a scopo illustrativo, non la registrazione di una sessione specifica. Settembre 2026