Behavior: EN→ES subtitles — one line per source line, ≤42 characters per line, scene-scale, single direct pass. All numbers: the same frozen 36-scene eval set, deterministic checker.
| Config | Regime | Scene pass |
|---|---|---|
| Gemini 3.5 Flash — thinking on | thinking | 100% |
| Gemini 3.5 Flash — thinking off (best prompt) | single pass | 92% |
| Haiku 4.5 (best prompt) | single pass | 78% |
| Qwen3-4B tuned, v4adv (ours, canonical) | single pass | 47.2% |
| Qwen3-4B base | single pass | 5.6% |
| Training scenes | Spec adherence | Line-violation rate |
|---|---|---|
| 0 (base) | 5.6% | 29.4% |
| 42 | 0.0% | 26.9% |
| 85 | 11.1% | 22.5% |
| 171 | 19.4% | 18.9% |
| 342 (v2) | 27.8% | 19.2% |
| 698 (v3) | 33.3% | 8.9% |
| 1417 (v4) | 33.3% | 8.3% |
| 1417+160 (v4adv) | 47.2% | 5.0% |
Companion facts: line-count discipline essentially solved (line-violation rate 29%→5%); the residual failure is character-limit blindness on dense scenes (43–51-char overflows). Full curve + minimum-viable-N: docs/DATA_EFFICIENCY.md.
| Checkpoint | Role | Attacks breaking (of 16) |
|---|---|---|
| v3-lora | attacked (partner's target) | 16 / 16 |
| v4-lora | before retrain | 16 / 16 |
| v4adv-lora | after retrain | 4 / 16 |
Every line-count break and every injection/reframing/override attack now holds; the 4 survivors are the same 43–51-char overflow ceiling, not new failures. Detail: adversarial/received/RESULTS.md.