Imagine you're a home cook who decides to bake bread from scratch — grinding your own flour, cultivating your own starter — not because the result will rival a commercial bakery, but because you want to understand exactly what happens at every stage so you can diagnose why a loaf fails. That's this paper. Pedro Carvalho Brom trains a small language model entirely from zero on a single consumer GPU, tokenizer included, in Brazilian Portuguese, and then — critically — subjects it to a preregistered evaluation protocol that treats measurement as the point, not an afterthought. The committed claim: you can build, train, and rigorously evaluate a domain-specialist language model at home, and the evaluation will reveal things that intuition and vibes cannot. This is not a methods paper proposing a new architecture. It is a tutorial-as-research-artifact, releasing a tested Python package, two Jupyter notebooks, and reference numbers for models at 11–12M parameters. The two generation modes — autoregressive and masked diffusion — share a single network, and the paper's real contribution is showing exactly where each mode wins, loses, and memorizes. The numbers are honest and granular. On Brazilian prose and federal laws, the autoregressive mode peaks at 64 epochs and then begins memorizing; masked diffusion keeps improving to 256 epochs. At their respective sweet spots on test data, the diffusion bound exceeds autoregressive likelihood by 0.06 bits per byte — within the preregistered minimum detectable effect. On held-out laws and acts published after training, the model ties a Kneser-Ney 6-gram floor in likelihood on the same windows and loses to the floor at continuing those acts. It beats the floor at detecting tampered text, and fills cross-references more often than the floor and public models of 160M and 630M parameters — but only in decrees, a genre absent from training, and only when each group weighs equally. On laws, the larger public models, trained with roughly 500× to 100,000× the compute, lead in tampered-text detection and continuation. The evaluation architecture is where this paper earns its keep. Tasks are built from text alone — no annotation pipeline, no human labeling at training time — using a Kneser-Ney floor and public yardsticks. The comparison protocol is preregistered, meaning the benchmarks were locked before results were known. A blind human reading is preregistered and explicitly excluded from this version, which is an unusually transparent admission that the human eval isn't done yet. The 34-page paper includes 14 figures, 13 tables, and a catalogue of defects that only measurement revealed — the kind of failure documentation that most academic work quietly omits. Where does this sit in the field? The live argument is whether small, from-scratch models trained on narrow domains can do useful specialist work, or whether the compute gap makes them structurally inferior to pretrained foundation models fine-tuned for the same tasks. This paper lands squarely on the side of 'small models can win on specific tasks in specific genres, but you need to measure honestly to know which ones.' The 160M and 630M public models still dominate on laws; the 12M model wins only on decrees, and only under balanced weighting. That's a narrow, honest result. The masked diffusion vs. autoregressive comparison is genuinely useful pedagogy. The 0.06 bits-per-byte edge for diffusion, combined with the memorization cliff at 64 epochs for autoregressive training, gives practitioners a concrete diagnostic: if your small autoregressive model starts improving suspiciously after a certain epoch count, you're probably memorizing, and switching to masked diffusion buys you more headroom. The fact that both modes live on the same network makes this a practical insight, not just a theoretical one. The honest read on limitations: this is a tutorial, not a SOTA claim. The model is tiny. The domain is narrow. The wins are conditional. But the contribution is the methodology and the radical transparency of the evaluation — a template for anyone building a specialist small model in a low-resource language on a budget. The code is public, the protocol is preregistered, and the failures are catalogued. That's the real artifact.