This release moves the verdict boundary from 25/100 to 30/100, and you should read why before upgrading.
The calibration corpus now contains the writers this category harms
The published false-positive rate was measured on 90 texts — research articles and encyclopedia entries, all published before 2022 — and nothing was flagged at 25/100. Detectors are accused of flagging 61% of essays by second-language writers; this project had never measured its own rate on that population.
206 classroom essays by adult learners of English now join the corpus: the University of Pittsburgh English Language Institute Corpus (Juffs, Han & Naismith 2020, doi:10.5281/zenodo.3991977), written 2006–2012, first submitted version, writing classes, 662+ words, one text per student, selected by a fixed rule that tools/SignsOfAI.Calibration -- fetch --source pelic reproduces byte for byte.
At 25/100 the engine flagged 9 of 206 — 4.4%, interval 2.3%–8.1% — and 0 of the 90 published texts. The boundary is the lowest score whose interval stays under the 5% target, and 25 no longer qualifies. At 30/100 it flags 2 of 296, interval 0.2%–2.4%. VerdictBands.Threshold returns 30; a document scoring between 25 and 29.9 that carried a verdict on 0.5.0 carries none on 0.6.0. The findings are untouched.
English supports its own threshold for the first time (271 texts, bound 2.7% at 30). Spanish (25 texts) still borrows the pooled boundary and the report says so, quoting its own 13.3% beside it. The measured length range is now 649 – 9,328 words, median 832; the floor moved down from 662.
A defect the new corpus found, and one it nearly caused
chat.eager-opener had been admitted on zero hits in the published texts. It fired in eleven learner essays, because its pattern accepted "Of course," with a comma alongside "Certainly!". Both packs now require the exclamation mark; tests cover the comma.
The evidence report was about to print a language's best bound beside its recommended threshold — identical while nothing was flagged anywhere, wrong the day English earned its own threshold: "under 1.4%" where the bound at 30 is 2.7%. PublishedLanguage.RateHighAtThreshold is new and the report quotes it. If you consume published-calibration.json, read that field for the bound at the threshold and bestBound for the tightest at any.
Not refitted, on purpose
humanRatePer1000 — the gates that stop ordinary connectors from counting — stays fitted on the 90 published texts. Refitting on the pooled corpus made learners the majority: twelve English rules lost their gate and the connector gates inflated up to seven-fold, learner rates spent on everyone. Per-group gates are issue #75. The calibration page measures the engine as it ships.
Wording
Every surface that said "before generative models existed" now says "before 2022" — GPT-3 is from 2020, and the weaker claim is the one that holds (#78 covers the remaining comments). The report caveats name the encyclopedia revisions and the learner essays they are measured on. Spanish report text reads as Spanish: de esta versión, a un umbral, acotar con precisión.
Calibration tool
fetch --source pelic; run now fails when manifest texts are missing (--allow-missing to measure a subset on purpose); a download is validated before it earns its name; the generated page carries a Sources table with each group's licence and citation, and its group paragraph is computed at the boundary rather than asserted.
Packages
SignsOfAI.Core, SignsOfAI.Cli and SignsOfAI.Mcp — pushed to NuGet by this release. The Windows app is a separate tag: see desktop-v0.6.0.