AHD Artificial Human Design

AHD · Eval report · 15 June 2026 · weekly · CF OSS n=30

The split holds.

Second run on the weekly cadence, same five Cloudflare Workers AI models, same brief, n=30. The result from 9 June reproduces without surprise: three models cut tells by 53 to 73 percent under the compiled prompt, and the same two stay flat. llama-4-scout again trades one set of tells for another rather than reducing, and qwen3-30b barely moves. Repeating across two consecutive weeks makes this look like a stable pattern, not a one-off.

Per-model reduction

Model Raw mean tells Compiled mean tells Reduction Scored raw / comp
@cf/google/gemma-4-26b-a4b-it 2.57 1.20 53.3% 28 / 25
@cf/meta/llama-4-scout-17b-16e-instruct 2.00 2.00 0.0% 30 / 30
@cf/mistralai/mistral-small-3.1-24b-instruct 3.33 1.13 66.0% 30 / 30
@cf/openai/gpt-oss-120b 3.33 0.90 73.0% 30 / 30
@cf/qwen/qwen3-30b-a3b-fp8 1.87 1.73 7.1% 30 / 30

Mean source-level tells per scored sample, raw versus compiled. Lower is better. gemma-4 lost a handful of samples to HTML extraction this run (28 and 25 scored of 30 attempted); the other four cells scored all 30. Means are over scored samples only.

Same mechanism as 9 June

The reason the two flat cells stay flat is unchanged from the first run, so the full explanation lives on the 9 June report. In short: llama-4-scout drops ahd/require-named-grid and ahd/require-type-pairing (100 percent to 0 percent under the compiled prompt) but introduces ahd/line-height-per-size and ahd/radius-hierarchy (0 percent to 100 percent), because it collapses the token's three line-heights and sharp-by-default radius into one global value. The three models that reduce follow the per-size guidance instead. The linter keeps separating the models that can execute per-size hierarchy from the ones that cannot.

What this run measures, and what it does not

Web and UI surface only. Five Cloudflare Workers AI open-source models, served by one host. The deterministic source linter (38 rules) over rendered-free HTML. No vision critic on rendered pixels. No frontier cells. No image generation. One brief (briefs/landing.yml), one token. Tells per page is a proxy: read each delta next to the rendered output, not in isolation.

Per-tell frequency

Tell gemma-4 llama-scout mistral gpt-oss qwen3
a11y/heading-skip   0 →   8  0 →   0  0 →   0  0 →   0  0 →   0
body-measure   0 →   0  0 →   0  0 →   0  0 →   0  0 →   3
line-height-per-size  82 →   0  0 → 100 53 →  20100 →   0 60 →  37
no-em-dashes-in-prose   0 →   0  0 →   0  0 →   3  7 →   0  0 →   0
no-flat-dark-mode   4 →   0  0 →   0  0 →   0  0 →   0  3 →   0
radius-hierarchy  50 →   4  0 → 100100 →   0 90 →   3 27 →  47
require-named-grid   0 →   0100 →   0100 →  50 33 →   0 13 →   3
require-type-pairing  21 →   0100 →   0 80 →   0 53 →   0 70 →   0
tracking-per-size   0 →  32  0 →   0  0 →  30  0 →   3  0 →   0
weight-variety 100 →  76  0 →   0  0 →  10 50 →  83 13 →  83

Percent of scored samples in each cell where the rule fired, raw → compiled. Column heads abbreviate the model ids from the table above; rule names drop the ahd/ prefix. Rules that fired in no cell are omitted.

The receipts

This run: ahd 0.11.0, token swiss-editorial (hash 380a3d833d94), brief briefs/landing.yml (hash 8b7d42759643). The canonical report with the full replay manifest and exact replay command is committed to the framework repository at docs/evals/weekly/2026-06-15.md.

Adjacent: all runs, the 9 June baseline, methodology, the taxonomy.