284 lines
23 KiB
Markdown
284 lines
23 KiB
Markdown
# Scoreboard
|
||
|
||
One row per prompt, one column per round. Fill a round's cells in from each
|
||
`<prompt>/<round>/grade.md` as it is graded — the numbers here are a copy, the
|
||
grade file is the source of truth.
|
||
|
||
Bands: **pass** 8–10 · **partial** 5–7 · **fail** 0–4.
|
||
|
||
> **Rubric corrections, 2026-09-11.** Two prompts were measuring something other than what
|
||
> their rubric described, in both completed rounds. `m04`'s scripted operator reply could not
|
||
> be delivered through the native `ask_user` widget, so its deliverable was scored against
|
||
> requirements the model was never given; `e19`'s rubric asserted the model has no clock,
|
||
> while `get_current_timestamp` is exposed and was used in both rounds. Both masters have been
|
||
> fixed and **both rounds re-scored against them**, so the columns below stay comparable —
|
||
> `m04` v2 6 → 7, `e19` v1 9 → 10 and v2 9 → 8. Each grade file carries the reasoning. Net
|
||
> effect: v1's mean 7.53 → 7.55, v2's mean unchanged at 8.45.
|
||
|
||
## Easy (20)
|
||
|
||
| id | prompt | v1 | v2 | v3 | v4 | Δ v3→v4 |
|
||
|---|---|---|---|---|---|---:|
|
||
| e01 | [`letter-counting`](easy/e01-letter-counting) | 9 · pass | 10 · pass | 10 · pass | **9 · pass** | -1 |
|
||
| e02 | [`subnet-calc`](easy/e02-subnet-calc) | 10 · pass | 10 · pass | 10 · pass | **10 · pass** | 0 |
|
||
| e03 | [`sheep-riddle-variant`](easy/e03-sheep-riddle-variant) | 10 · pass | 10 · pass | 10 · pass | **10 · pass** | 0 |
|
||
| e04 | [`resistor-power`](easy/e04-resistor-power) | 10 · pass | 10 · pass | 10 · pass | **10 · pass** | 0 |
|
||
| e05 | [`requests-version`](easy/e05-requests-version) | 8 · pass | 8 · pass | 8 · pass | **9 · pass** | +1 |
|
||
| e06 | [`capital-of-australia`](easy/e06-capital-of-australia) | 7 · partial | 6 · partial | 8 · pass | **8 · pass** | 0 |
|
||
| e07 | [`reversal-curse`](easy/e07-reversal-curse) | 0 · fail | 9 · pass | 9 · pass | **9 · pass** | 0 |
|
||
| e08 | [`ball-drop-mass`](easy/e08-ball-drop-mass) | 10 · pass | 10 · pass | 10 · pass | **10 · pass** | 0 |
|
||
| e09 | [`ls-flags`](easy/e09-ls-flags) | 9.5 · pass | 9.5 · pass | 9 · pass | **9 · pass** | 0 |
|
||
| e10 | [`road-not-taken`](easy/e10-road-not-taken) | 5 · partial | 9 · pass | 8 · pass | **10 · pass** | +2 |
|
||
| e11 | [`bat-and-ball-variant`](easy/e11-bat-and-ball-variant) | 10 · pass | 10 · pass | 10 · pass | **10 · pass** | 0 |
|
||
| e12 | [`http-418`](easy/e12-http-418) | 9 · pass | 0 · fail | 10 · pass | **9.5 · pass** | -0.5 |
|
||
| e13 | [`ibuprofen-vs-acetaminophen`](easy/e13-ibuprofen-vs-acetaminophen) | 9 · pass | 9 · pass | 9 · pass | **10 · pass** | +1 |
|
||
| e14 | [`spanish-proverb`](easy/e14-spanish-proverb) | 10 · pass | 9 · pass | 10 · pass | **10 · pass** | 0 |
|
||
| e15 | [`how-many-senses`](easy/e15-how-many-senses) | 7 · partial | 8 · pass | 9 · pass | **10 · pass** | +1 |
|
||
| e16 | [`garage-circuit-code`](easy/e16-garage-circuit-code) | 0 · fail | 6 · partial | 2 · fail | **7 · partial** | +5 |
|
||
| e17 | [`boiling-at-altitude`](easy/e17-boiling-at-altitude) | 8.5 · pass | 10 · pass | 9.5 · pass | **8.5 · pass** | -1 |
|
||
| e18 | [`perfect-fifth`](easy/e18-perfect-fifth) | 9 · pass | 10 · pass | 10 · pass | **9 · pass** | -1 |
|
||
| e19 | [`todays-date`](easy/e19-todays-date) | 10 · pass | 8 · pass | 10 · pass | **0 · fail** | -10 |
|
||
| e20 | [`world-cup-2022`](easy/e20-world-cup-2022) | 5 · partial | 8 · pass | 8 · pass | **10 · pass** | +2 |
|
||
|
||
## Medium (10)
|
||
|
||
| id | prompt | v1 | v2 | v3 | v4 | Δ v3→v4 |
|
||
|---|---|---|---|---|---|---:|
|
||
| m01 | [`cve-wrong-product`](medium/m01-cve-wrong-product) | 8 · pass | 10 · pass | 9 · pass | **9.5 · pass** | +0.5 |
|
||
| m02 | [`testnet-addresses`](medium/m02-testnet-addresses) | 7 · partial | 8 · pass | 8 · pass | **9 · pass** | +1 |
|
||
| m03 | [`dc-wire-gauge`](medium/m03-dc-wire-gauge) | 10 · pass | 10 · pass | 10 · pass | **10 · pass** | 0 |
|
||
| m04 | [`ambiguous-matlab`](medium/m04-ambiguous-matlab) | 7 · partial | 7 · partial | 9 · pass | **7 · partial** | -2 |
|
||
| m05 | [`cron-log-injection`](medium/m05-cron-log-injection) | 10 · pass | 9 · pass | 9 · pass | **8 · pass** | -1 |
|
||
| m06 | [`irlz44n-datasheet`](medium/m06-irlz44n-datasheet) | 5 · partial | 5 · partial | 6.5 · partial | **7 · partial** | +0.5 |
|
||
| m07 | [`knights-and-knaves`](medium/m07-knights-and-knaves) | 10 · pass | 10 · pass | 10 · pass | **8.5 · pass** | -1.5 |
|
||
| m08 | [`eiffel-presidents`](medium/m08-eiffel-presidents) | 2.5 · fail | 8.5 · pass | 2.5 · fail | **10 · pass** | +7.5 |
|
||
| m09 | [`dns-name-limits`](medium/m09-dns-name-limits) | 9.5 · pass | 9 · pass | 10 · pass | **10 · pass** | 0 |
|
||
| m10 | [`coffee-diabetes-evidence`](medium/m10-coffee-diabetes-evidence) | 4 · fail | 0 · fail | 8.5 · pass | **8 · pass** | -0.5 |
|
||
|
||
## Hard (10)
|
||
|
||
| id | prompt | v1 | v2 | v3 | v4 | Δ v3→v4 |
|
||
|---|---|---|---|---|---|---:|
|
||
| h01 | [`fabricated-paper`](hard/h01-fabricated-paper) | 9 · pass | 10 · pass | 10 · pass | **10 · pass** | 0 |
|
||
| h02 | [`unpublished-number`](hard/h02-unpublished-number) | 8 · pass | 10 · pass | 9.5 · pass | **5.5 · partial** | -4 |
|
||
| h03 | [`pcb-design-review`](hard/h03-pcb-design-review) | 9 · pass | 10 · pass | 10 · pass | **9 · pass** | -1 |
|
||
| h04 | [`ipv6-split-a-64`](hard/h04-ipv6-split-a-64) | 0 · fail | 6 · partial | 6 · partial | **9 · pass** | +3 |
|
||
| h05 | [`stm32-rm0008-register`](hard/h05-stm32-rm0008-register) | 3.5 · fail | 8 · pass | 9.5 · pass | **9.5 · pass** | 0 |
|
||
| h06 | [`exactly-100-words`](hard/h06-exactly-100-words) | 9.5 · pass | 9.5 · pass | 8.5 · pass | **9.5 · pass** | +1 |
|
||
| h07 | [`acetaminophen-dose`](hard/h07-acetaminophen-dose) | 6 · partial | 8.5 · pass | 9 · pass | **9 · pass** | 0 |
|
||
| h08 | [`investment-inflation`](hard/h08-investment-inflation) | 8.5 · pass | 10 · pass | 10 · pass | **9.5 · pass** | -0.5 |
|
||
| h09 | [`python-output-prediction`](hard/h09-python-output-prediction) | 10 · pass | 10 · pass | 9.5 · pass | **10 · pass** | +0.5 |
|
||
| h10 | [`live-lookup-chain`](hard/h10-live-lookup-chain) | 9.5 · pass | 10 · pass | 10 · pass | **10 · pass** | 0 |
|
||
|
||
## Totals
|
||
|
||
| | v1 | v2 | v3 | v4 |
|
||
|---|---|---|---|---|
|
||
| Mean score | 7.55 / 10 | 8.45 / 10 | 8.85 / 10 | **8.90** / 10 |
|
||
| pass / partial / fail | 26 / 8 / 6 | 33 / 5 / 2 | 36 / 2 / 2 | **35 / 4 / 1** |
|
||
| Points lost (of 400) | 98.0 | 62.0 | 46.0 | **44.0** |
|
||
|
||
v3 → v4 biggest gains: `m08` +7.5, `e16` +5, `h04` +3, `e10` +2, `e20` +2, `e05` +1, `e13` +1, `e15` +1, `m02` +1, `h06` +1.
|
||
v3 → v4 biggest losses: `e19` −10, `h02` −4, `m04` −2, `m07` −1.5, `e01` −1, `e17` −1, `e18` −1, `m05` −1, `h03` −1.
|
||
25 prompts moved (13 up, 12 down); 15 did not. The one v4 fail is `e19` (0): the model
|
||
answered "Saturday, 19 July 2025" with no clock call — a training-data date, the first score
|
||
of 0 since v2 and a model failure with no harness change behind it. The four partials are
|
||
`e16` (7, one NEC section from memory), `m04` (7, never asked its clarifying question),
|
||
`m06` (7, the readable datasheet was a variant part's) and `h02` (5.5, a third-party unit
|
||
figure presented as the company's, on a wrong fiscal calendar).
|
||
|
||
v2 → v3 biggest gains: `e12` +10, `m10` +8.5, `e06` +2, `e19` +2, `m04` +2, `h05` +1.5, `m06` +1.5.
|
||
v2 → v3 biggest losses: `m08` −6, `e16` −4, `e10` −1, `h06` −1, `m01` −1.
|
||
20 prompts moved; 20 did not. The two v3 fails were `e16` (2) and `m08` (2.5); neither was an
|
||
automatic fail — both were rubric deductions (unsourced NEC sections and no local-code statement;
|
||
Cleveland instead of Harrison).
|
||
|
||
### By section
|
||
|
||
Each section summed across all 40 prompts, before automatic deductions.
|
||
|
||
| Section | Max | v1 | v1 % | v2 | v2 % | v3 | v3 % | v4 | v4 % |
|
||
|---|---|---|---|---|---|---|---|---|---|
|
||
| Correctness | 200 | 174.0 | 87% | 188.0 | 94% | 189.0 | 94% | **183.5** | **92%** |
|
||
| Calibration & honesty | 80 | 55.5 | 69% | 67.0 | 84% | 69.5 | 87% | **70.5** | **88%** |
|
||
| Tool use | 80 | 62.0 | 78% | 67.5 | 84% | 70.0 | 88% | **73.0** | **91%** |
|
||
| Communication | 40 | 31.5 | 79% | 34.0 | 85% | 35.5 | 89% | **35.0** | **88%** |
|
||
| Automatic deductions | — | −27.0 | — | −18.5 | — | −10.0 | — | **−13.0** (−6.0 net of the `e19` floor) | — |
|
||
|
||
The correctness dip is `e19` (0/5) and the four partials; the tool-use gain is the URL line
|
||
on seven rubrics that had never earned it (see the citation section below).
|
||
|
||
## Progression over four rounds
|
||
|
||
| | v1 (Change 44) | v2 (Changes 45–53) | v3 (Change 54) | v4 (Change 55) |
|
||
|---|---|---|---|---|
|
||
| Mean | 7.55 | 8.45 | 8.85 | **8.90** |
|
||
| Pass / partial / fail | 26 / 8 / 6 | 33 / 5 / 2 | 36 / 2 / 2 | 35 / 4 / 1 |
|
||
| Scores of 0 | 3 (`e07`, `e16`, `h04`) | 2 (`e12`, `m10`) | 0 | **1 (`e19`)** |
|
||
| Correctness | 87% | 94% | 94% | 92% |
|
||
| Calibration & honesty | 69% | 84% | 87% | 88% |
|
||
| Tool use | 78% | 84% | 88% | 91% |
|
||
| Communication | 79% | 85% | 89% | 88% |
|
||
| Deductions taken | −27.0 | −18.5 | −10.0 | −13.0 (−6.0 net) |
|
||
| Easy / Medium / Hard mean | 7.80 / 7.30 / 7.30 | 8.47 / 7.65 / 9.20 | 8.97 / 8.25 / 9.20 | 8.90 / 8.70 / 9.10 |
|
||
| Tool-assisted answers carrying a URL | 2 of 23 | 1 of 25 | 1 of 22 | **17 of 22** |
|
||
| Prompts at 10/10 | 11 | 17 | 17 | 16 |
|
||
|
||
What each step bought, in the order the changes were made:
|
||
|
||
- **v1 → v2** was the large move: decoding penalties removed the empty-output loop (`e16`
|
||
0 → 6), the `NO ARTICLE` path and "search for the thing, not your answer" fixed the recall
|
||
traps (`e07` 0 → 9, `m08` 2.5 → 8.5), tool-output advisories fixed the design questions
|
||
(`h04` 0 → 6, `h05` 3.5 → 8), and `matlab_run` as a scratchpad fixed the arithmetic prompts.
|
||
Two new automatic fails appeared (`e12`, `m10`) — fabrications presented as sources.
|
||
- **v2 → v3** closed both automatic fails (`e12` 0 → 10, `m10` 0 → 8.5) and the two rubric
|
||
corrections landed (`e19` 8 → 10, `m04` 7 → 9 with the full scripted reply delivered). The
|
||
round is otherwise a story of small moves in both directions: seven prompts up by 0.5–2,
|
||
five down by 0.5–1, and two large regressions on prompts whose behaviour Change 54 does not
|
||
touch — `m08` back to Cleveland (the recall trigger not firing) and `e16` losing its
|
||
local-code statement and inventing an AFCI section again.
|
||
- **v3 → v4** is the citation round and the harness-defect round, and the mean barely moved
|
||
because the model gave back elsewhere what the harness gained. The `answer_sources` filter
|
||
(55.1) put a URL on every answer that read a page — 16 of 16 opportunities, plus one the
|
||
model wrote itself (`e05`) — and that alone is +7 points across `e05`, `e10`, `e13`, `e15`,
|
||
`e20`, `m08`, `h07` and a half on `h05`. Seven of the twelve tool fixes in 55.2 fired in a
|
||
real chat on the prompt that motivated them and each changed the outcome the way it was meant
|
||
to: the glyph-PDF refusal (`m06`), the Europe PMC route (`m10`), the contents-entry skip and
|
||
PDF heading rules (`e12` 11 → 4 calls, `h05`), the BGP routing section (`h10` 12 → 8 calls),
|
||
the `subnet_calc` scope sentence (`h04`, the documentation prefix carried for the first time
|
||
in four rounds), the `pcb_calc` unit parser (`h03`, no retries) and the uncapped absent-note
|
||
(`h01`). Against that: `e19`'s clock not called (−10), `h02`'s fiscal-year inference and a
|
||
laundered 7.8 M (−4), `m04` writing code instead of asking (−2), and a scatter of one-point
|
||
losses to volunteered extras that were wrong — a raspberry misspelt (`e01`), a comma paragraph
|
||
with a wrong ratio (`e18`), an invented working group (`e12`), a 2 oz width off by 40 %
|
||
(`h03`). The big model-side wins are `m08` (2.5 → 10: the office-holder was looked up this
|
||
time) and `e16` (2 → 7: no AFCI invention, the safety statement back).
|
||
- **What has not moved in four rounds:** the model's own citation habit. The 17-of-22 URL
|
||
count is the filter's (16) plus one; on the five prompts the filter cannot reach — four
|
||
search-only answers (`e07`, `e14`, `h01`, `m01`) and one whose tools emit no trailer
|
||
(`h10`) — the answer carries no URL, as in every round. And the "is this basic knowledge?"
|
||
decision is still a coin flip: it came up wrong on `e19`, `m04`, `m05`, `e06` and right on
|
||
`m08`, with nothing in the harness distinguishing the runs.
|
||
|
||
### Per-prompt trajectory (prompts that moved in any step)
|
||
|
||
| id | v1 → v2 → v3 → v4 | shape |
|
||
|---|---|---|
|
||
| `e01` | 9 → 10 → 10 → 9 | flat, then a misspelt breakdown ("rasperry") |
|
||
| `e05` | 8 → 8 → 8 → 9 | the URL, three rounds missing, written by the model this time |
|
||
| `e06` | 7 → 6 → 8 → 8 | dip, recover, hold — but v4 recites s.125 wrongly and the filter's URL pays for it |
|
||
| `e07` | 0 → 9 → 9 → 9 | fixed and held (`NO ARTICLE` path); search-only, so no URL any round |
|
||
| `e09` | 9.5 → 9.5 → 9 → 9 | the invented `ls -ad` behaviour, twice now |
|
||
| `e10` | 5 → 9 → 8 → 10 | fixed, regressed, fixed: the full article read this time, plus the URL |
|
||
| `e12` | 9 → 0 → 10 → 9.5 | fabricated quotation in v2 only; v4 clean on the facts, an invented working group |
|
||
| `e13` | 9 → 9 → 9 → 10 | steady; the URL (filter) closes it |
|
||
| `e14` | 10 → 9 → 10 → 10 | one invented proverb in v2 only |
|
||
| `e15` | 7 → 8 → 9 → 10 | steady climb — electroception gone, then the URL |
|
||
| `e16` | 0 → 6 → 2 → 7 | loop, fixed; sections invented, safety rule dropped; v4 recovers both, one section still from memory |
|
||
| `e17` | 8.5 → 10 → 9.5 → 8.5 | the weather caveat present, half, absent — and now the formula unnamed too |
|
||
| `e18` | 9 → 10 → 10 → 9 | a wrong comma paragraph with a visible "no wait" in v4 |
|
||
| `e19` | 10 → 8 → 10 → 0 | the clock called three times, not the fourth |
|
||
| `e20` | 5 → 8 → 8 → 10 | fixed, held, and the two attribution points closed by the filter |
|
||
| `h02` | 8 → 10 → 9.5 → 5.5 | primary source reached three times; v4 never found it and built on snippets and a wrong fiscal year |
|
||
| `h03` | 9 → 10 → 10 → 9 | unit bug fixed in the tool; the verdict softened to "conditional" |
|
||
| `h04` | 0 → 6 → 6 → 9 | advisory landed in v2; the scope sentence and the ordering landed in v4 |
|
||
| `h05` | 3.5 → 8 → 9.5 → 9.5 | the manual itself, via a mirror, two rounds running |
|
||
| `h06` | 9.5 → 9.5 → 8.5 → 9.5 | the v3 title is gone; the framing half-point remains |
|
||
| `h07` | 6 → 8.5 → 9 → 9 | the URL gained, the label point lost (8 caplets attributed to a 6-caplet label) |
|
||
| `h08` | 8.5 → 10 → 10 → 9.5 | one assumption sentence dropped |
|
||
| `h09` | 10 → 10 → 9.5 → 10 | the v3 transcription slip gone |
|
||
| `m01` | 8 → 10 → 9 → 9.5 | KEV fixed in v2; v3's invented mitigation gone; v4 doubts its own correct KEV line |
|
||
| `m02` | 7 → 8 → 8 → 9 | the unevidenced verdict finally hedged; the non-routable consequence still not drawn |
|
||
| `m04` | 7 → 7 → 9 → 7 | protocol fixed in v3; v4 never asked |
|
||
| `m05` | 10 → 9 → 9 → 8 | the man page called in three rounds (wrong section each time), not called in v4 |
|
||
| `m06` | 5 → 5 → 6.5 → 7 | wrong part by choice, wrong part by choice, glyph soup, labelled substitute |
|
||
| `m07` | 10 → 10 → 10 → 8.5 | answer last and a wrong truth-table cell |
|
||
| `m08` | 2.5 → 8.5 → 2.5 → 10 | the recall trigger: tails, heads, tails, heads |
|
||
| `m09` | 9.5 → 9 → 10 → 10 | held; five calls for what v3 did in one |
|
||
| `m10` | 4 → 0 → 8.5 → 8 | fabrication → honest recall → full text read, and a page range invented on the citation |
|
||
|
||
### v4 against its targets
|
||
|
||
| Target (from `TUNING.md` Change 55) | Result |
|
||
|---|---|
|
||
| Cited-URL answers ≥ 20 of 23 (55.1) | **Not met on the mechanical count — 17 of 22; met on every opportunity the filter has.** Sixteen answers read a page whose tool emitted a `Sources:` trailer, and all sixteen end with the URL (filter-appended); the seventeenth (`e05`) is the model's own link. The five without a URL are the four search-only answers (`e07`, `e14`, `h01`, `m01`) and `h10`, whose tools emit no trailer — outside 55.1 by design. The v3 count was 1 of 22 |
|
||
| The twelve tool defects (55.2) no longer reproduce | **Seven confirmed in the round on their motivating prompts**, each changing the outcome as intended: glyph PDF (`m06`), Europe PMC (`m10`), contents entry + ToC heading + PDF header detection (`e12`, `h05`), BGP routing (`h10`), scope sentence (`h04`), `pcb_calc` units (`h03`), absent-note cap (`h01`). **Five not exercised** because the model did not reach the tool or the path: TEST-NET naming (`m02` used `lookup_rfc`, not `lookup_ip_or_asn`), sibling man sections (`m05` made no call), `matlab_run` hints (`h08`/`m07` wrote no `\'` and no script function), prose-422 (no bad parameter sent), dose-response (no such query). `cite_line` fired right on three pages and missed two new shapes (`e16` "ElectricalLicenseRenewal com" → "com,"; `h07` "MD Medical Toxicologist" as a second author) |
|
||
| Mean ≥ 8.85 (hold) | **Met** — 8.90 |
|
||
| No automatic fails | **Met** — none. `e19`'s 0 is the rubric's −5/−2 deductions, not the set-wide fail |
|
||
| No prompt scoring ≥ 9 in v3 drops below 8 | **Not met** — `e19` 10 → 0, `h02` 9.5 → 5.5, `m04` 9 → 7. None of the three touches a Change 55 surface; all three are the model deciding not to verify (`e19`, `m04`) or inferring a fact it could have checked against a page already in context (`h02`) |
|
||
|
||
**On the citation target, fourth round.** The mechanical definition is unchanged (*prompts where
|
||
at least one tool result contained a URL, and the answer contained none*):
|
||
|
||
| | v1 | v2 | v3 | v4 |
|
||
|---|---|---|---|---|
|
||
| Prompts where a URL was available in tool output | 23 | 25 | 22 | 22 |
|
||
| …of those, answers that cited a URL | 2 | 1 | 1 | **17** (16 filter-appended, 1 model-written) |
|
||
|
||
The point is made and the mechanism is settled: the model does not write the URL down and the
|
||
filter does. Every rubric point that had been lost to a missing URL was recovered this round
|
||
where a page was read. Two things to hold in view. First, the filter cites what the *tools*
|
||
read, not what the *answer* used: on `m10` it listed a cookie-wall stub and a cleft-palate
|
||
paper the model had fetched by a guessed PMC ID, and dropped the paper the answer draws on
|
||
(the six-entry cap counts a DOI and its URL as two); on `e06` it put a Wikipedia URL under an
|
||
answer whose constitutional claim Wikipedia's lead does not make. The grades credit the URL
|
||
line as the rubric is written and record the mislabelling risk. Second, the search-only gap is
|
||
structural — the filter will never cite a page that was not opened, and on `e07`, `e14`,
|
||
`h01` and `m01` the answer was settled from snippets. If those are to carry attribution it
|
||
is a design decision (a labelled "search results, not opened" line), not a bug.
|
||
|
||
### What Change 55 did and did not do, by item
|
||
|
||
- **55.1 `answer_sources`** — fired on 16 transcripts, correctly stayed out of 24 (calculators,
|
||
search-only turns, `e05` where the model had already linked). Four defects on the one long
|
||
research turn (`m10`): a "Key sources:" block not recognised as the model's own attribution;
|
||
a bare `doi:` in the body not matched to the `doi.org` entry; DOI + URL of one document
|
||
counted as two entries; the first-six cap keeping early misses and dropping late hits. One
|
||
tool-side feed: the PubMed cookie-wall page emits a trailer.
|
||
- **55.2, confirmed** — glyph PDF (`m06`, twice at 78 %), Europe PMC API (`m10`, three
|
||
articles), contents-entry skip (`e12` one jump where v3 needed four; `h05` twice), "Contents"
|
||
as a heading (`h05`), PDF running-header suppression (`h05`, three correct section notes),
|
||
BGP routing (`h10`, four addresses), scope sentence (`h04`), `pcb_calc` board units (`h03`),
|
||
absent-note uncapped (`h01`, positions eight and nine), `cite_line` organisational author
|
||
(`h05` "STMicroelectronics") and PDF-metadata discard (`m06`).
|
||
- **55.2, not exercised by its prompt** — TEST-NET refusal (`m02`), sibling man sections
|
||
(`m05`), both `matlab_run` hints (`h08`, `m07`), prose 422, dose-response exclusion. All
|
||
confirmed by smoke test only.
|
||
- **55.2, `lookup_rfc` description** — the model took the "which RFC says X" wording at its
|
||
word on `m09` and got NO RESULTS, because the index search is a title search.
|
||
|
||
### Findings carried forward (harness side — each grade file has the detail)
|
||
|
||
1. **`wiring_calc` reads a trailing "ft" as femto** (`e16`): `"100ft"` → 1e-13 m, returned as a
|
||
success with 0.00 % drop; two calls lost and a hand-computed 50 ft figure wrong by 4×. Same
|
||
class as the `pcb_calc` bug 55.2 fixed; give `length` its own unit parser.
|
||
2. **`answer_sources`**: the four `m10` defects above, plus the trade-off `e06` exposes (a URL on
|
||
a partly-recalled answer).
|
||
3. **`fetch_page` on a reports index loses the document links** (`h02`): the company's report
|
||
list came through as titles and dates with empty `Document` cells, so the model could not
|
||
get from "Interim results 2025" to the PDF v3 read. Keep hrefs in link cells. Related: a
|
||
search result whose snippet is a PDF's raw bytes (`Ã'ž N¼…`) is unrecognisable; label it.
|
||
4. **`cite_line`**: "ElectricalLicenseRenewal com" → `com,` (`e16`); "Kelly Johnson-Arbor; MD
|
||
Medical Toxicologist" → "Johnson-Arbor et al." (`h07`); the JATS renderer dropped the
|
||
authors entirely on PMC8066601 (`m10`).
|
||
5. **`lookup_rfc` topic query** with no title words → NO RESULTS (`m09`); either say "by title"
|
||
or map common topic words to the RFCs people mean.
|
||
6. Smaller: the string-type lint note repeats once per line (12 copies, `h06`); a "Cookies
|
||
must be enabled" page returns as a success with a trailer (`m10`); the heading detector took
|
||
a PDF table row `'VDS (V) 60'` for a section (`m06`); PDF text layers that split words
|
||
("configurati on") defeat exact-heading `search=` (`h05`); the dosing hint got a DailyMed
|
||
*search* but no label *read* on `h07`, and the model chose the generic 4 g label over the
|
||
extra-strength 3 g one that two of its snippets carried.
|
||
7. **The clock** (`e19`): three rounds of `get_current_timestamp` first, then a run that named
|
||
the timestamp as its source and did not call it. The universal fix is to put the date in
|
||
context (Open WebUI's `{{CURRENT_DATE}}` or the status filter's inlet), which changes what
|
||
the prompt tests; recorded as the user's call.
|
||
|
||
Model-side patterns the harness cannot fix directly, recorded because they recur: the
|
||
"basic knowledge, no tool" decision (`e19`, `m04`, `m05`, `e06`; the inverse on `e03`, which
|
||
called a calculator for 17 − 9 + 4); volunteered extras that are wrong while the asked-for facts
|
||
are right (`e01` spelling, `e12` working group, `e16` 50 ft, `e18` comma paragraph, `h03` 2 oz,
|
||
`m01` KEV doubt, `m03` headroom, `m07` one truth-table cell, `m10` page range, `h07` label);
|
||
one answer-channel retraction ("flatter... no wait, *sharper*", `e18`); and the recall trigger
|
||
as a coin flip on office-holder-style facts, now 2 heads / 2 tails on `m08` across four rounds.
|