formachines / errata

Errata

How the corrections are verified

A correction is published only when the same script works on the version released before the model's knowledge cutoff, fails on the newer release with an error about the changed API, and the corrected script passes on the newer release. Sandbox controls must pass for a run to count.

Models
3
Selection cutoff
2026-04-01
Known breaks detected
10/10
False breaks
0 %

Steps

  1. Select. Popular PyPI and npm packages with a minor or major release after the earliest knowledge cutoff of the checked models.
  2. Read. Release notes between the two versions: GitHub releases, changelog files and linked what's-new pages.
  3. Extract. A helper model lists breaking changes; each must quote the release notes word for word.
  4. Ask. Each checked model writes a short script for a task that naturally uses the changed API. It is not told which version is installed.
  5. Run. The script runs in a sandbox without network on both versions, each installed with dependencies as of its release date.
  6. Fix. A helper model writes the smallest change, seeing the names the new version really exports; the corrected script must pass on the new version.
  7. Compare. The corrected script's output on the new version is compared with the original's on the old version (proof.equivalent, method stdout_match): same, differs, or not compared (nothing printed, no run on the old version, the original's output varies between runs, the API was removed). A match is observed stdout of one example, not a proof of equivalent behaviour.
  8. Apply. The published patch is applied word for word to the original example and must parse, drop the old names, run on the new version and print what the corrected script prints (proof.applicability: applies, syntax_error, incomplete, fails, not_applicable, unknown). Automatic application is allowed only when proof.equivalent is true and proof.applicability.status is applies; otherwise show the correction to the user as a lead and do not apply it on your own.
  9. Publish. Only the changed lines are published as the correction, with the error, the models that wrote the old form in our runs, the release-note quote and both checks.
  10. Recheck. When the package publishes a newer release, the same scripts run again on it: the old code must still fail with the same error and every fix must still pass. A confirmed entry shows that release in its sandbox proof; one that breaks goes to a person, who decides whether to withdraw it.
Latest sandbox control run, 2026-10-20
ControlGroupResult
pos-py-pandas-appendpositivedetected
pos-py-numpy-float_positivedetected
pos-py-sqlalchemy-engine-executepositivedetected
pos-py-sklearn-load_bostonpositivedetected
pos-py-pydantic-basesettingspositivedetected
pos-py-werkzeug-url_quotepositivedetected
pos-js-node-fetch-requirepositivedetected
pos-js-chalk-requirepositivedetected
pos-js-uuid-deep-requirepositivedetected
pos-js-p-limit-requirepositivedetected
neg-py-requests-sessionnegativepassed both versions
neg-py-pyyaml-safe_loadnegativepassed both versions
neg-py-numpy-sumnegativepassed both versions
neg-py-pandas-sumnegativepassed both versions
neg-py-attrs-definenegativepassed both versions
neg-js-lodash-chunknegativepassed both versions
neg-js-uuid-v4negativepassed both versions
neg-js-semver-gtnegativepassed both versions
neg-js-dayjs-yearnegativepassed both versions
neg-js-msnegativepassed both versions

Limits

For agents