- --boss + --boss-ollama: iso malli tekee spekin JA analysoi käännösvirheet
- Boss muotoilee selkeät korjausohjeet ("add import X, change line Y")
- Worker (pieni malli) toteuttaa korjauksen täsmällisen ohjeen perusteella
- Boss ei generoi koodia itse — vain analysoi ja ohjaa
- spec-plain.md: "entity Author (authors): name string, email string"
- extractPlainSpec() parseri plaintext → {entities, relationships}
- Small-profiili käyttää plain-formaattia, large JSON
- specText muuttuja: plaintext tai JSON prompteihin
- Ei voi mennä syntaktisesti rikki kuten JSON
- Vaihe 1: generoi kaikki 4 tiedostoa peräkkäin (konteksti kasvaa)
- Vaihe 2: go build kaikilla tiedostoilla → virheet per tiedosto → korjaus
- Ratkaisee: models.go yksinään ei käänny (ei main-funktiota)
- Virheet ryhmitellään tiedostoittain, korjataan vain viallinen tiedosto
- Jokainen tiedosto (paitsi _test.go) validoidaan go buildilla heti
- Käännösvirheet palautetaan mallille korjattavaksi (max 2 yritystä)
- Virhe korjataan yhden tiedoston kontekstissa, ei koko projektia
- Testitiedosto validoidaan vasta lopussa go testillä (vaihe 5)
- Generoi yksi tiedosto kerrallaan: models.go → handlers.go → main.go → tests
- Edellisten tiedostojen koodi kontekstissa seuraavalle
- Max 2048 tok per tiedosto (vs 10240 kaikki kerralla)
- go.mod generoidaan aina golden examplesta (ei mallin tuotoksesta)
- Promptissa "Write ONLY the file X" + "Start with package main"
- Yksinkertaistettu JSON-skeema: ei sa_type/py_type, vain type-kenttä
- Small-profiili käyttää automaattisesti spec-simple promptia
- Vähemmän kenttiä per entity → pienempi output → 8b selviytyy
- parseGeneratedFiles regex: lisätty .go ja .mod päätteet
- Markdown fence strippaus: lisätty go/gomod
- Dockerfile.go-test: go mod tidy ennen testejä (go.sum generoidaan)
- Testattu: 6/6 golden example ilman go.sum
Aiemmin vain small+python. Nyt kaikki multi-entity skenaariot pilkotaan
entiteetti kerrallaan — myös Rust ja large-mallit.
Author toimii jo, Article inkrementaalisena lisäyksenä helpompi.
- Seurataan parasta testitulosta (bestPassed/bestFiles)
- Jos korjaus huonontaa: palautetaan paras versio ja lopetetaan
- fixRounds laskee vain testikorjaukset, ei cargo check -kierroksia
- Estää 4/7 → 0/1 regressiot korjaussilmukassa
- Vaihe 4/5: cargo check Docker-kontissa ennen cargo test -ajoa
- Käännösvirheet syötetään mallille korjattavaksi (max 2 kierrosta)
- Estää turhat cargo test -ajot kun koodi ei käänny
- Luotu todo-rs.md golden example Rust-referenssitoteutuksesta
- getGoldenForModel() huomioi nyt LANG: todo.md → todo-rs.md Rust-moodissa
- Korjattu golden-compact-rs.md /:id → /{id} bugi
- Juurisyy: malli sai Python golden examplen mutta piti generoida Rustia
qwen3-coder:30b → todo.md (annotaatiot)
qwen3:8b → todo-readme.md (GitHub README -muoto, tutuin koulutusdata)
Golden example ladataan dynaamisesti per malli pipelinen sisällä.
todo.md yhdistää koodin ja annotaatiot: miksi pattern on valittu,
mitä EI saa tehdä. 1567 tokenia (vs raaka 1340, compact 335).
Benchmark lataa .md-version oletuksena, fallback erillisiin tiedostoihin.