Repository navigation
Doc ai README
Copia di
ai/README.md— torna a Documenti · Home
Questa directory contiene un kit minimo per far generare codice Triad a un modello linguistico e verificarlo in modo oggettivo con la conformance.
L'idea: il modello riceve SYSTEM_PROMPT.md e un task.md, restituisce un
programma Triad; il programma viene salvato come solution.triad e verify.jl
lo esegue con lo stage0, confrontando stdout ed exit code con i golden.
Strumento di sviluppo: non fa parte della catena S0→S4. La conformance ufficiale resta
conformance/; qui si misura la qualità della generazione.
ai/
README.md questo file
SYSTEM_PROMPT.md prompt di sistema per il modello
verify.jl esecutore/verificatore delle soluzioni
tasks/
01_somma/
task.md richiesta in linguaggio naturale
expected.out stdout atteso (golden)
expected.code exit code atteso (default 0)
solution.triad codice generato (non committato)
...
- Fornisci al modello
SYSTEM_PROMPT.md+ iltask.mddel caso. - Il modello deve restituire solo un blocco di codice Triad.
- Salva il contenuto in
ai/tasks/<caso>/solution.triad. - Verifica:
node cli/triad-cli.mjs ai verifyOutput: PASS/FAIL per caso, riepilogo, exit 1 se almeno una soluzione
fallisce. Le soluzioni mancanti sono SKIP (non falliscono la verifica).
Per un singolo caso:
node cli/triad-cli.mjs ai verify --tasks ai/tasks/01_somma- pass@1: una generazione per task, tutte verdi.
- pass@k: k tentativi per task, conta il primo riuscito.
- errore di sintassi / runtime / output: classifica i FAIL per capire se manca specifica, esempi o tooling.
Un modello che passa i 5 task dimostra di conoscere il sottoinsieme Triad-Core usato qui; non dimostra la conoscenza del linguaggio completo.
| task | copre |
|---|---|
01_somma |
println, precedenza, interi |
02_fattoriale |
funzioni, ricorsione, ternario |
03_fibonacci |
ricorsione doppia |
04_stringhe |
stringhe, concatenazione *, length
|
05_chiusure |
funzione che restituisce una lambda con cattura |
verify.jl esegue codice generato dal modello. I task usano il profilo
Triad-Core e non dovrebbero contenere effetti, ma un modello può generare loop
infiniti o codice inatteso: esegui la verifica in una VM/container, senza rete e
con risorse limitate. Non incollare output non verificato in produzione.
- Il seed copre 26/29 casi Core; il verificatore usa il seed, che è più completo del seed.
- Mancano liste e
elseifcompleti;string()copre Int e String: i task evitano queste feature. - Il
.triadè l'estensione canonica;.tdresta accettato come alias.
Parte prima
Parte seconda 4. Le parole del linguaggio 5. Valori e tipi 6. Espressioni, operatori e variabili 7. Decidere e ripetere 8. Funzioni e ricorsione 9. Lambda, chiusure e visibilità dei nomi 10. Liste e dati strutturati 11. Stringhe, simboli e byte 12. Quando le cose vanno storte 13. Progetto: un piccolo interprete
Parte terza 14. Tipi, struct e multiple dispatch 15. Programmazione logica 16. Codice come dato e macro 17. Garanzie, costrutti Full e interfaccia
Parte quarta 18. Anatomia del progetto e contratto di conformità 19. L'interprete di riferimento 20. Il seed in codice macchina 21. Verso il self-hosting 22. Gli strumenti di sviluppo
Appendici
- Riferimento dei builtin Core
- Catalogo conformance Core
- Catalogo conformance Full
- Sorgenti degli esempi
- Sorgenti self-hosted
- Documenti di riferimento
- Indice analitico
Manuale di consultazione