SkillsBench leaderboard — numeric density
Twenty-four configurations, four numeric columns, a confidence interval inside every cell. Type fails here by not holding a column: proportional digits break the decimal alignment, and a wide comma or plus-minus pushes the whole run off the grid.
| # | Harness | Model | Without Skills | With Skills | Gain (g) | Trials |
|---|
Capability viewer — mixed setting
The hardest pairing on the stack: a tabular list on the left, running prose and a code block on the right, in one field of view. A face that is tuned for data goes cold in the paragraph; a face tuned for reading goes soft in the table. The title is a 42-character slug that has to break well.
| Task | Miss | Configuration | Run |
|---|
You are a materials science researcher. You want to analyze the crystal structure
of a few samples. You are given a few CIF files generated by SHELX through X-ray diffraction.
Report the space group, the Wyckoff letters and the site multiplicity for each sample, and write
the result to /root/wyckoff_analysis.json.
def test_wyckoff(out: dict) -> None:
ref = load_json("expected.json")
for s in SAMPLES:
eq(out[s]["space_group"], ref[s]["sg"])
close(out[s]["mult"], ref[s]["mult"])
# SHELX writes non-standard
# settings: allow origin 1 or 2
sample_02 — origin choice 2 not handledTaskMiner queue — state at a glance
Nobody reads a queue. They scan it for the row that is in trouble. That puts the load on weight separation and word shape, not on beauty: SOLVED, PARTIAL and UNSOLVED have to split apart at 10px, and the two-line row has to stay one object.
The bench
Everything below is measured in the browser you are reading this in, on the faces that actually resolved — no numbers copied off a specimen page. Change either slot and every figure re-reads.
Column fit
A over B, one originThe longest slug in the dataset, set in both slots at each face's own cell size and stacked on a single left edge — one shared baseline, one shared origin. Where the two faces agree the strokes sit on top of each other; where they diverge the drift accumulates left to right, and the gap between the two end rules is the cost of the swap in the Task column above. The dashed rule is that column's real width.
Bold reflow
slot AEvery one of the three surfaces bolds something on hover or selection. In most families the bold cut is wider, so the row reflows and the columns twitch. A uniwidth family holds one advance width across weights and nothing moves. Regular over bold, same origin:
Numerals
digit advance spreadEvery numeral in the three surfaces goes through the data lane — the paired mono — while chips, sub-lines and prose numbers go through the text lane. Measured across 0–9 and set flush right below: watch where the decimal points land in each lane.
Both surfaces also set font-variant-numeric: tabular-nums, which rescues a proportional face if it ships the feature. The spread here is measured with the feature off, so it reports what each face does on its own.
Apparent size
x-height ÷ cap-heightTwo faces at the same font-size do not look the same size. The ratio below is why — it is the single number that decides whether a 12.5px cell reads as generous or as cramped. The dashed rule is the measured x-height.
Confusable pairs
at 20px and at cell sizeTask slugs carry version numbers, IBANs, space-group symbols and CVE ids. When 0 and O merge, a miss report becomes unreadable in the one place it has to be exact.
The whole field, against one column
No bars — the type is the bar. Every candidate sets the same slug at its own cell size, from a shared left edge, so each row's right edge is its measurement. The red rule is the real width of the Task column in proof 2, measured live. Cross it and the slug truncates in production. Click any row to load it into the live slot.