AHD · Weekly series · CF OSS n=30 · swiss-editorial
Eight runs, same brief.
Once a week a scheduled job sends one brief to five open-source models on Cloudflare Workers AI, thirty times each, once raw and once compiled, and scores the output with the deterministic source linter. Latest run 10 August 2026.
A single run showed a split: some models reduce tells under the compiled prompt and some do not. Eight runs show something the first three could not, which is how much each cell moves when nothing about the method changes. Two cells reduce reliably. One reduces every week but by an amount that swings twenty points. One sits against zero. One changes sign six times in eight runs.
That distinction is the point of the weekly cadence. A model pinned near zero and a model oscillating around zero look identical in any single report and are not the same finding.
Reduction by run
Percent fewer tells under the compiled prompt. Positive is the direction the framework is trying to produce.
| Model | 9 Jun | 15 Jun | 22 Jun | 13 Jul | 20 Jul | 27 Jul | 3 Aug | 10 Aug | Range |
|---|---|---|---|---|---|---|---|---|---|
gpt-oss-120b | +72.6 | +73.0 | +72.7 | +72.9 | +74.5 | +74.3 | +78.3 | +72.7 | 72.6 to 78.3 |
mistral-small-3.1 | +68.6 | +66.0 | +64.6 | +62.9 | +63.4 | +65.7 | +61.4 | +70.6 | 61.4 to 70.6 |
gemma-4-26b | +53.8 | +53.3 | +57.2 | +36.4 | +53.8 | +47.1 | +46.8 | +40.0 | 36.4 to 57.2 |
llama-4-scout | 0.0 | 0.0 | +1.6 | 0.0 | +4.8 | +4.8 | +3.3 | +5.0 | 0.0 to 5.0 |
qwen3-30b | -3.4 | +7.1 | -7.0 | +15.5 | -8.8 | +22.0 | +6.7 | -6.5 | -8.8 to 22.0 |
Every figure traces to the dated report linked in the register below. Per-tell frequency tables are not aggregated here, because averaging them across runs would hide exactly the variance this page exists to show. They stay in the per-run reports.
What each cell is doing
gpt-oss-120bandmistral-small-3.1- Reduce every week, and by a consistent amount. gpt-oss has never dropped below 72 percent across eight runs; mistral stays between 61 and 71. These are the two cells where the compiled prompt does what it is designed to do, repeatably. gpt-oss posted its best figure, 78.3 percent, on 3 August, though on 27 scored compiled samples rather than 30, so it is reported here without anything resting on it.
gemma-4-26b- Down every week, between 36 and 58 percent. The direction is never in doubt and the size always is. Its weakest week, 36.4 percent on 13 July, is also the week it produced the fewest usable samples, 27 raw and 24 compiled of 30 attempted. Cells that lose samples give noisier estimates, which is the ordinary reason to read a reduction next to its scored count.
llama-4-scout- Sits against zero, between 0.0 and 5.0. The last four runs are all positive where the first four never rose above 1.6, which is a drift too small to call a trend. It is recorded here so it can be checked later. The underlying behaviour has been consistent since June: this model trades one set of tells for another instead of reducing.
qwen3-30b- Changes sign six times in eight runs, from minus 8.8 to plus 22.0. No claim about direction survives that sequence. What the series establishes is that the effect on this cell is not repeatable; it does not establish that the effect is zero, which would need an analysis across runs rather than eight point estimates. A single run that caught it at plus 22.0 would have supported a much more flattering sentence.
Run register
One row per run. The report carries the manifest, the per-tell table and the replay hashes. Notes name any cell that scored fewer than thirty samples in either condition.
| Run | Report | Sample shortfalls |
|---|---|---|
2026-06-09.md | none | |
2026-06-15.md | gemma 28/25 | |
2026-06-22.md | gemma 28/26, gpt-oss 29/26 | |
2026-07-13.md | gemma 27/24, its lowest yield; gpt-oss 30/28 | |
2026-07-20.md | gemma 29/29, qwen 29/30 | |
2026-07-27.md | gemma 29/29 | |
2026-08-03.md | gpt-oss 29/27, qwen 28/30 | |
2026-08-10.md | none |
Scope and caveats
No runs between 22 June and 13 July. The scheduled job fired on 29 June and 6 July and failed both times. The account was under a GitHub Actions billing lock, which a separate monthly workflow had likely been feeding: its cron expression combined a day-of-month field with a day-of-week field, which cron treats as an either-or, so the heaviest workflow in the repository ran about ten times a month instead of once. That was corrected on 9 July and the weekly cadence resumed on 13 July. The eval method did not change, so the runs either side are comparable.
One brief, one token, one surface. Every run
measures briefs/landing.yml against
swiss-editorial on the web surface. None of it
generalises to other briefs or other tokens on its own.
Source linter only. The fourteen vision rules that judge rendered pixels do not run here. A clean source lint is not a clean page.
These are five specific cells. A model served by a different host is a different serving path and a different measurement.
This page updates with each run; the figure above the table is the latest. The first three runs also have their own pages, kept at their published URLs: 9 June, 15 June, 22 June. Adjacent: how we measure, every run, the glossary.