v1.0.0 · 2026-11-13
First release. The idea is ours: a probe without a skill on 13 November 2026, where Sonnet, asked only to clean up code, turned an explicit-None sentinel into a parameter default and an `options || {}` line into destructuring, called it safe, and a caller passing None or null then got an error. No foreign skill or repository was opened.
What the file does: for each rewritten line that decides what a missing or empty value becomes, it puts the left-out argument, explicit None or null, the falsy values and a null options object through the old line and the new one; by default it keeps the old result in modern syntax, otherwise it names each difference. The answer ends with a Behavior section. Python, JavaScript, TypeScript and React, with a short note for PHP, Ruby, Kotlin, C# and Go.
Test on 13 November 2026: ten cases written by us (nine cleanup requests where a rewrite can quietly change an empty value, one control), each a bare request such as "Clean up this function." with no word about empty values. The rubric was written before the first run. Scored by a script that executes the code from every answer and the original on the same inputs (explicit None or null, 0, "", an empty list, a left-out argument, a null options object) and lists every difference; whether the answer named each difference was read by hand. The scorer was checked both ways: the original against itself gave no difference in 10 of 10 cases, and the four failures recorded in the probe were all caught. The pattern check in cases.json only asks for a non-empty answer, so compare-baseline was not used for the count. No check was widened after the runs.
Results: Sonnet, two runs per case, 20 of 20 with the file and 11 of 20 without (strictly 10: one bare run on the price formatter was counted right only for a general sentence that defaults cover undefined alone). Haiku, one run per case, 10 of 10 with and 7 of 10 without. With the file the scorer found no difference in any of the 30 answers, and each was a real rewrite (no `var` left, a third to three quarters of the lines new).
Before release the description was cut from 814 to 440 characters, so that it names the topic and the Behavior section but no longer carries the rule; the side with the file was re-run in full and gave the same 20 of 20 and 10 of 10. A probe with only the name and the short description, without the body, also gave 10 of 10 on Sonnet: on these ten cases the gain comes from pointing the model at empty values, and the body did not add a measurable difference. Harder cases were not measured.
Price 50000 ($0.05): Sonnet gained 9 runs of 20, which is the top row of the table, but the facts are public language rules, not owner-measured, so the lower tier.