01
Zero extractable training pairs for the two most important roles
The Writer S1 and S2 loaders searched for fields named draft and prose. The actual data used text and the nested repair_patch.patched_text. Both writer LoRAs — the models that actually produce prose — trained on zero pairs. Silently.
SEVERITY blockingDISCOVERED VIA training-loss auditSTATUS FIXED
02
Data augmentation pipeline crashed on first call
augment_data.py called randomize_protagonist(). That function never existed — the real name was randomize_all_names(). The pipeline had never successfully augmented anything.
SEVERITY blockingSTATUS FIXED
03
Curation stage that did not curate
curate_source_data.py printed statistics and exited 0 without writing output. Every run looked green; no curation happened.
SEVERITY blockingSTATUS FIXED
04
Classic overfitting signature in Writer S2
Eval test T01 produced "Ich habe ihn gefunden" twenty times in sequence. Cause: training without response-masking — the model was learning to predict the instructions as well as the response.
SEVERITY criticalDISCOVERED VIA T01–T10 eval harnessSTATUS FIXED
05
BPE tokenization corrupting German compounds
Ran upstream of everything else. Without fixing it first, no amount of retraining would converge.
SEVERITY blockingSTATUS FIXED